标签:
需求分析:
写一个程序对一篇英文文章中每个单词出现的次数进行统计,并按照首字母的顺序进行排列。
代码设计:
对每个单词出现的次数进行统计,并按照首字母的顺序进行排列,存储到map中。
fp=fopen(str,"r"); map<string,int>list; while(fgets(text,1000,fp)!=NULL) { while(text[i]!=‘\0‘) { char s[40]; int k=0; while((text[i]>=‘A‘&&text[i]<=‘Z‘)||(text[i]>=‘a‘&&text[i]<=‘z‘)) { if(text[i]>=‘A‘&&text[i]<=‘Z‘) text[i]+=‘a‘-‘A‘; s[k++]=text[i++]; } s[k]=‘\0‘; list[s]++; if(text[i]==‘\0‘)break; else i++; } } fclose(fp);
对map中每个单词按照首字母的顺序显示出现的次数。
map<string,int>::iterator m; cout<<"每个词出现的频数如下:"<<endl; for(m=++list.begin(),i=1;m!=list.end();i++,m++) { cout<<left; cout<<setw(15)<<m->first<<setw(10)<<m->second; if(i%5==0) cout<<endl; } cout<<endl;
所统计的文章如下:
统计结果如下:
标签:
原文地址:http://www.cnblogs.com/ziyoujay/p/5844048.html