C++中string类对象不使用空字符‘\0’来标记字符串结尾,那么下面的代码为什么会在字符串结尾结束循环?
#include<iostream>#include<string>
int main()
{
using namespace std;
string name;
cout << "Enter your first name,Please: ";
cin >> name;
int i = 0;
while (name[i]!=0)
{
cout << name[i] << ": " << int(name[i])<<endl;
i++;
}
system("pause");
return 0;
我的意思是,C++中string类对象既然不使用空字符‘\0’来标记字符串结尾,
那么上述代码为什么会知道在我输入的字符串(例如我输入:name)的结尾处结束循环,
并且输出时只输出name,以及每个字母对应的ASCII码,
而我使用的是name[i]!=‘\0’这种用于char数组字符串结尾的判断条件呀
[此贴子已经被作者于2018-2-26 19:16编辑过]