std::string 是否有内置的空终止符?
与普遍看法相反,std::string 本身并不具有内置的空终止符。携带空终止符“”。此行为与字符数组不同,字符数组会自动附加一个空字符来表示字符串的终止。
但是,此规则有一个重要的例外:temp.c_str() 方法。当您调用此方法时,返回的字符串将包含一个空终止符。这允许以与传统 C 风格字符串兼容的方式处理字符串。
此外,需要注意的是,您可以在 std::string 中显式包含空字符,就像任何其他字符。通过将 ' ' 分配给字符串中的字符位置,您可以有效地将字符串分为两个子字符串。
例如,考虑以下代码片段:
string s("hello"); cout << s.size() << ' '; s[1] = '<pre class="brush:php;toolbar:false">5 5'; cout << s.size() << '\n';
此代码的输出代码为:
,这表明空字符不会影响字符串的感知大小。原因是空字符在 std::strings 的上下文中没有特殊含义。
以上是`std::string` 是否包含空终止符?的详细内容。更多信息请关注PHP中文网其他相关文章!