Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个包含二进制数据的字符串。字符串的大小为 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。
我应该如何处理终止字符?
每个 C 字符串函数都假定 NULL 字节 '\0' 表示字符串的结尾。您不能将具有 NULL 字节的字符串作为内容并使用标准 C 字符串函数。
您将需要构建自己的字符串系统。请注意,您将需要一些其他方法来确定字符串的结束位置。
尝试使用双引号来初始化字符串
buf[0] = "\037"; buf[1] = buf[2]=buf[3] ="\000";
你初始化的是一个带单引号的字符