C++string字符串结尾标志0
看个⽰例
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
str[3] = '\0';
cout << str << endl;
return 0;
}字符串常量有0吗
输出:hel o
应该明⽩了点什么!在C++中\0不能作为识别string类字符串的结尾
其实C++string类也不需要识别结尾,因为你需要⽤到的C++的函数库基本都帮你解决了
再看个例⼦
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
int i = 0,len = 0;
while(str[i++])
{
++len;
}
cout << "len = " << len << endl;
cout << "str.length() = " << str.length() << endl;
return 0;
}
输出:
len = 5
str.length() = 5
两个值len和str.length()相等,说明len的计算值是对的,也就是说string类结尾处还是有\0的。说明⼀下我⽤的dev编译运⾏的。⾄于\0 这是编译器产商加进去的(根据具体实现⽽⾔,有的编译器就没加),并⾮C++本⾝所要求的,C++并没有要求string类要有结尾

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。