#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/