c++primer 练习11.9

来源:互联网 发布:airplay mac 编辑:程序博客网 时间:2024/05/29 09:14
/*11.9定义一个map,一个行号的list关联,list中保存的是单词出现的行号*/#include<iostream>#include<map>#include<list>#include<sstream>#include<fstream>#include<string>#include<cctype>using namespace std;void change(string &str){if(isupper(str[0]))str[0]=tolower(str[0]);if(str[str.size()-1]==','||str[str.size()-1]=='.')str.erase(str.size()-1);}int main(int argc,char *argv[]){ifstream in(argv[1]);if(!in){cout<<"Can't open the file: "<<argv[1]<<endl;exit(1);}map<string,list<int>> word_count;string line_temp,str_temp;unsigned line=0;while(getline(in,line_temp)){++line;istringstream in_str(line_temp);while(in_str>>str_temp){change(str_temp);word_count[str_temp].push_back(line);}}for(const auto &x:word_count){cout<<x.first<<"出现在第 ";for(const auto &y:x.second)cout<<y<<' ';cout<<"行\n";}system("pause");}

0 0
原创粉丝点击