题目
编写程序,输入文本,并打印一个表格,显示每个不同单词在文本中出现的次数。
例如:
输入:
Welcome to C++ world ! Happy birthday to you .
输出:
单词 C++ 的个数为 : 1
单词 Happy 的个数为 : 1
单词 Welcome 的个数为 : 1
单词 birthday 的个数为 : 1
单词 to 的个数为 : 2
单词 world 的个数为 : 1
单词 you 的个数为 : 1
/*
输入几行文本,并打印一个表格,显示每个不同单词在文本中出现的次数
*/
#include <iostream>
#include <map>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string str,s;
map<string,int> m;
map<string,int>::iterator iter;
cout<<"please input test: "<<endl;
getline(cin,str); //输入文本
istringstream is(str);
while(is>>s){ //提取字符串
iter=m.find(s); //查找s,并赋给迭代器
if(iter!=m.end()){ //若字符串存在,则value+1
iter->second++;
}else{
m.insert(make_pair(s,1)); //不存在则插入
}
}
//把标点符号键值对删除
m.erase("!");
m.erase(",");
m.erase(".");
m.erase("?");
//结束后遍历map
for(map<string,int>::iterator it= m.begin();it!=m.end();it++){
cout<<"单词 "<<it->first<<" 的个数为 : "<<it->second<<endl;
}
return 0;
}