我有一个需要对字符串进行编码的函数,该函数需要能够接受0x00作为有效的"字节"。我的程序需要检查字符串的长度,但是如果我传入"x00"
以std::string
,则length()
方法返回 0。
即使字符串是单个空字符,如何获取实际长度?
std::string
完全能够存储空值。但是,您必须保持警惕,因为const char*
不是,并且您非常简短地构建了一个const char*
,从中创建std::string
。
std::string a("x00");
这将创建一个常量 C 字符串,仅包含空字符,后跟空终止符。但是 C 字符串不知道它们有多长;因此,字符串认为它会一直运行到第一个 null 终止符,即第一个字符。因此,将创建一个零长度字符串。
std::string b("");
b.push_back(' ');
std::string
为空清除。字符(