使用到c中的strtok函数,输入一行后进行统计输出,即遇到换行符后输出结果。并且遇到‘#’结束程序。
#include <iostream> #include <cstdio> // 使用到c中的strtok,关键 #include <string> //map中用到string,这一句总忘 #include <map> //通过计算m的大小计算单词数 using namespace std; char str[10000]; int main() { char delims[] = " "; //在空格处将单词取出 while (cin.getline(str,10000) && strcmp(str, "#")!=0) { map <string, int> m; char *result = NULL; result = strtok( str, delims ); while( result != NULL ) { //判断m中是否有这个单词,如果没有则添加这个单词 if (m.find(result)==m.end()) m[result]++; //本句的++没什么用,却不知道如何改进 result = strtok( NULL, delims ); } cout<<m.size()<<endl; //计算m的大小 } return 0; }