2,190
社区成员
发帖
与我相关
我的任务
分享
package main
import "fmt" //引入fmt库
//import "bytes"
func CString(b []byte) string {
index := -1
for i, ch := range b {
if ch == 0 {
index = i
break
}
}
if index >= 0 {
return string(b[:index])
}
return string(b)
}
func main() {
var ary_buff [8]byte
copy(ary_buff[0:], []byte{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'})
/*p := bytes.IndexByte(ary_buff[:], 0)
fmt.Println("p=",p)
str := string(ary_buff[0:p])
fmt.Println(str, len(str))
*/
fmt.Println ( CString(ary_buff[0:]) )
}
以上代码,二楼的朋友那个会报错,三楼还可以,考虑的比较全面,先谢谢了
func CString(b []byte) string {
index := -1
for i, ch := range b {
if ch == 0 {
index = i
break
}
}
if index >= 0 {
return string(b[:index])
}
return string(b)
}
func main() {
b := []byte{'a', 'b', 'c', 'd', 0, 'e', 'f', 'g', 'h'}
str := CString(b)
fmt.Println(str, len(str))
}
var ary_buff [20]byte
copy(ary_buff[0:], []byte{'a', 'b', 'c', 'd', 0, 'e', 'f', 'g', 'h'})
p := bytes.IndexByte(ary_buff[:], 0)
str := string(ary_buff[0:p])
fmt.Println(str, len(str))