关于用cout输出string,遇到'\0'的处理问题
在string类型变量接收的常量字符串中如果有'\0',.length()函数和用cout就会以第一个'\0'作为字符串的结尾。
为什么将string变量的一个元素改为'\0'后,string变量的.length()函数和用cout输出不会受到'\0'的干扰?
代码如下
string str1 = "hello";string str2 = "he\0llo";
cout << "length of str1:" << str1.length() << " str1:" << str1 << endl;
cout << "length of str2:" << str2.length() << " str2:" << str2 << endl;
cout << endl;
str1[2] = '\0';
cout << "length of str1:" << str1.length() << " str1:" << str1 << endl;
运行结果:
回答
常量字符串是c风格的
以上是 关于用cout输出string,遇到'\0'的处理问题 的全部内容, 来源链接: utcz.com/a/36489.html