/*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");
}
c++primer 练习11.9
最新推荐文章于 2021-10-29 16:43:13 发布