在string类型变量接收的常量字符串中如果有'\0',.length()函数和用cout就会以第一个'\0'作为字符串的结尾。
为什么将string变量的一个元u N M W素改为'\0'后,string变量的.length()函数和用cout输出不会受到'\0'的干扰?
代码如下
stringh 6 G d u str1 = 5 A ( : = #"hello";
string s0 7 Rtr2 = "he\0llo";
cout << "length oY M bf str1:" << str1.length() << " str1:" &! j * { $ 1 -lt;< str1 &lX N 7 Nt;< endl;
cout << "length of str2:" << str26 w r L C.length() << " str2:" << str2 << endln & ? 1 ,;
cout << endl;
str1[2] = '\0';
cout << "length of str1:" << str1.length() << " str1:1 d 6 4 +" << str1 << endl;
运行结果:
回答
常量字符串是c风格的
发表评论