一句话总结:区分C与C++的字符串输出机制。
C语言是碰到'\0'就结束输出,而C++是根据字符串长度输出的。
直接上例子吧
#include <iostream>
#include <string>
using namespace std;
int main()
{
char szTest[] = {'a', 'b', 'c', '\0', 'd', 'e', 'f'};
string s(szTest, 7);
cout << s.c_str() << endl;
cout << s << endl;
if ('\0' == s[3])
{
cout<<"hhhhhh"<<endl;
}
if ('\0' == s[7])
{
cout<<"hkkkkk"<<endl;
}
cout<< sizeof(s) <<endl;
cout<<s.length()<<endl;
string s1("hello boy");
cout << s1 <<endl;
s1[3] = '\0';
cout << s1 <<endl;
cout<< sizeof(s) <<endl;
cout<<s1.length()<<endl;
return 0;
}
运行结果:
abc
abcdef
hhhhhh
hkkkkk
24
7
hello boy
helo boy
24
9