【发布时间】:2018-06-23 15:05:15
【问题描述】:
我有一个函数需要对字符串进行编码,它需要能够接受 0x00 作为有效的“字节”。我的程序需要检查字符串的长度,但是如果我将"\x00" 传递给std::string,length() 方法会返回 0。
即使字符串是单个空字符,我如何才能获得实际长度?
【问题讨论】:
-
查看available constructors 并在您的情况下使用。
-
您也可以尝试
strlen("\x00");以获得相同的结果。 -
@JackAidley 数据以字符串形式传入,一旦处理,它就会存储为字节向量。
-
@BoPersson,
strlen(3)不是 C++ 函数。这是一个 C 遗留函数,不知道 c++string类型。您不能将它与strings 一起使用,而是将string转换为旧版Cchar *字符串。这样,strlen(3)不知道数组大小,它只搜索\0字符并返回传递给它的指针与找到空字符的位置之间的差异。
标签: c++ c++11 stdstring string-length