c++ - C++中 '\0'的解释

标签 c++ string

#include<iostream>
#include<string>
using namespace std;
int main(){
    string i = "abc\0defg";
    cout<<i<<endl;
    // This prints "abc"

    string x = "abcdefg";
    x[3]='\0';
    cout << x << endl;
    // This prints "abcefg"
}
我知道实例i C++ String 类的不解释 \0作为字符串的结尾。为什么是字符串 i省略了 \0 之后的所有内容?字符串i有什么区别和 x ?

最佳答案

字符串文字 "abc\0defg"char const [9] . std::string没有接受数组的构造函数,但它可以接受 char const * .所以当 i与该构造函数一起使用,它认为 \0字符串内部表示字符串的结尾(实际上这是如何计算 char const * 字符串的结尾)。所以i仅包含 abc当它被构建时。

关于c++ - C++中 '\0'的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63986207/

相关文章:

Python MySQL 在 Blob 中插入和检索列表

Javascript:十六进制到十进制的字符串

c# - string.Clone() 有什么用?

javascript - 如何 String.match() 使用正则表达式区分它 ${SOME_TEXT}

c++ - 为什么 C++ 元组如此奇怪?

c++ - 布局中带有 Qlabel 的 QT 显示图像不起作用

c++ - opencv中的 mask

c++ - 制作适用于 C++ 代码的 GUI

python json boolean 值到小写字符串

c++ - 访问成员模板的模板参数