先看一个例题:
编写一个程序,它使用char数组和循环来每次从键盘读取一个单词,直到用户输入done为止。随后该程序指出用户输入了多少个单词。
#include <iostream>
#include<cstring>
int main(){
using namespace std;
const int size = 20;
char ch[size] ;
int i = 0;
cout<<"Enter words(to stop with word done)"<<endl;
cin>>ch;
while (strcmp(ch,"done"))
/*字符串之间的比较, 相同返回0. 左<右,返回负数。cmp是compare的缩写*/
{
i++;
cin>>ch;}
cout<<"You entered a total of "<<i<<" words."<<endl;
}
下面是用string类完成上述例题的代码
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
int i = 0;
cout<<"Enter words (to stop,with word done)"<<endl;
cin>>str;
while(str != "done")//注意和上面的区别
{
cin>>str;
i++;
}
cout<<"You entered a total of "<<i<<" words."<<endl;
return 0;
}
方式一中,如果用“!=”来比较ch和“done”。提示如下错误:
ISO C++ forbids comparison between pointer and integer [-fpermissive]。