代码为求输入的N多个字符串中有多少个不同字符!
由于以前对string类型不了解,因此犯了一个错误!
strcmp函数的参数只适应于C中的字符串,而string
类型属于C++里面的一个类,因此,在用strcmp函数
来比较string类型的数据时,需将string类型转化成
C语言里面的类型,调用string.c_str()方法即可。
错误代码:
#include<iostream> #include<string> #include<cstring> #include<set> using namespace std; int main() { string aa; set< string >a; while() { cin>>aa; if(strcmp(aa,"#")==0) break; else a.insert(aa); } cout<<a.size()<<endl; }
改正代码
#include<iostream> #include<string> #include<cstring> #include<set> using namespace std; int main() { string aa; set< string >a; while() { cin>>aa; if(strcmp(aa.c_str(),"#")==0) break; else a.insert(aa); } cout<<a.size()<<endl; }