词频统计程序

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

以上是关于词频统计程序的主要内容,如果未能解决你的问题,请参考以下文章

个人项目 - 词频统计

词频统计程序

词频统计

Spark编程实战-词频统计

Spark编程实战-词频统计

词频统计多需求版