构造带有嵌入空字符的 std::string
尝试使用以下语法创建带有嵌入空字符的 std::string 时std::string my_string("a\0b"); 只保留一个字符。发生这种情况是因为 std::string 构造函数需要一个以 null 结尾的 C 字符串。遇到 null 字符时,解析会停止。
要正确构造嵌入 null 的 std::string,请考虑以下方法:
C 14 及更高版本:
使用 s 后缀引入字符串文字来创建 std::string 而不解释空字符。这可以通过以下方式实现:
std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs", 5);-op"s;
Before C 14:
利用接受字符数组及其长度的字符串构造函数:
请记住,std::string 不使用空终止。但是,通过 c_str() 方法,您可以获得指向包含 C 字符串的内部缓冲区的指针。
以上是如何创建带有嵌入空字符的 std::string?的详细内容。更多信息请关注PHP中文网其他相关文章!