获取具有多个'/ 000'字符的字符串大小

时间:2013-03-15 06:57:10

标签: c string

我有一个包含二进制数据的字符串。 字符串的大小为4.其他函数将数据写入其中。 每次数据的大小都不同,如下所示,

buf[0] = '\037';
buf[1] = buf[2]=buf[3] ='\000';

buf[0] = '\037';
buf[1] =  '\045';
buf[2]=buf[3] ='\000';

当我得到字符串的长度时,在上述情况下我分别得到1和2。 在所有情况下,我希望字符串的长度为4。

我该如何处理终止字符?

2 个答案:

答案 0 :(得分:3)

每个C字符串函数都假定NULL字节'\ 0'指定字符串的结尾。您不能将具有NULL字节的字符串作为内容并使用标准C字符串函数。

您需要构建自己的字符串系统。请注意,您需要一些其他方法来确定字符串的结束位置。

答案 1 :(得分:-2)

尝试使用双引号初始化字符串

buf[0] = "\037";
buf[1] = buf[2]=buf[3] ="\000";

你初始化的是一个带单引号的字符