词频统计程序

需求分析:

 

    写一个程序对一篇英文文章中每个单词出现的次数进行统计,并按照首字母的顺序进行排列。

 

代码设计:

 

    对每个单词出现的次数进行统计,并按照首字母的顺序进行排列,存储到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

转载于:https://www.cnblogs.com/ziyoujay/p/5844048.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值