看個示例
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str = "hello";
str[3] = '\0';
cout << str << endl;
return 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類要有結尾