How To Convert a Zero-Terminated Byte Array to a String in Go

Venter C.
—The Problem
When working with C libraries or system calls in Go, you encounter a zero-terminated byte array.
The Solution
A zero-terminated byte array is a sequence of bytes that end with a null byte (0x00). This is a common way to represent strings in C, using a null byte to mark the end of a string.
You can use the bytes.IndexByte function to find the position of the null byte, then use the string type conversion to convert the byte array to a string.
Consider the following example:
package main import ( "bytes" "fmt" ) func ZeroTerminatedToString(byteArray []byte) string { nullIndex := bytes.IndexByte(byteArray, 0) // Find the first occurrence of the null byte (\x00) if nullIndex == -1 { return string(byteArray) // No null terminator found, convert entire slice } return string(byteArray[:nullIndex]) // Slice up to the null terminator } func main() { // Example byte array with a zero-terminator byteArray := []byte{'H', 'e', 'l', 'l', 'o', 0, 'W', 'o', 'r', 'l', 'd'} str := ZeroTerminatedToString(byteArray) fmt.Println(str) }
This returns the following output:
Hello
This approach ensures that only the first part of the byte array, up to the first zero byte, is considered. If your input is guaranteed to have a null terminator, this function will safely extract the intended string.
Further reading
- The Go
bytespackage documentation - The Go
IndexBytesfunction documentation
- SentryGo Error Tracking and Performance Monitoring
- Syntax.fmListen to the Syntax Podcast
- Listen to the Syntax Podcast
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
