词频统计程序
Posted 自由jay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了词频统计程序相关的知识,希望对你有一定的参考价值。
需求分析:
写一个程序对一篇英文文章中每个单词出现的次数进行统计,并按照首字母的顺序进行排列。
代码设计:
对每个单词出现的次数进行统计,并按照首字母的顺序进行排列,存储到map中。
fp=fopen(str,"r"); map<string,int>list; while(fgets(text,1000,fp)!=NULL) { i=0; 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;
所统计的文章如下:
统计结果如下:
ssh:git@git.coding.net:ziyoujay/cipintongji.git
以上是关于词频统计程序的主要内容,如果未能解决你的问题,请参考以下文章