C语言词频统计设计
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言词频统计设计,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1146字,纯文字阅读大概需要2分钟。
内容图文
![C语言词频统计设计](/upload/InfoBanner/zyjiaocheng/1085/9797b7d8e1134eaf8ddda7baa2cc3cdc.jpg)
项目需求:
1.设计一个词频统计小软件,对给定的英文文章进行单词频率的统计。
2.文章中相应的标点不计入统计。
3.将统计结果以从大到小的排序方式输出。
设计:
1.因为功能相对简单,采用C语言直接进行编写。
2.项目包含的统计功能利用定义的结构体分别对单词和次数进行统计。
3.以字符串的形式读取单词,并对其中的每个字符进行标点分析。
4.统计完成后采用冒泡排序的方式对次数进行排序。
5.将整个统计结果循环输出。
部分核心代码:
结构体定义:
typedef struct addup { char word[50]; int count; }R;
读取文本:
char temp[50]; R fin[10000]={"\0",0}; fp=fopen("f:/1.txt","r"); while(!feof(fp)) { fscanf(fp,"%s",temp); q=strlen(temp); n++; for(i=0;i<n;++i) if(strcmp(fin[i].word,temp)==0) { fin[i].count++; n--; break; } if(i>=n) { strcpy(fin[n-1].word,temp); fin[n-1].count++; } }
标点判定:
for(i=0;i<q;i++) { if(temp[i]==‘,‘||temp[i]==‘.‘||temp[i]==‘?‘||temp[i]==‘!‘||temp[i]==‘"‘) temp[i]=‘\0‘; }
冒泡排序:
for (i=0;i<n;i++) for (j=0;j<n-i;j++) { if (fin[j].count<fin[j+1].count) { ls[0]=fin[j+1]; fin[j+1]=fin[j]; fin[j]=ls[0]; } }
输出结果:
freopen("f:/2.txt","w",stdout); for(i=0;i<n;i++) { printf("%s : ",fin[i].word); s=0; for(j=0;j<fin[i].count;++j) s++; printf("%d 次",s); printf("\n"); } fclose(stdout);
测试用例:
因为词频统计单词重复几率不会过高,因此小篇幅文章不一定能得出好的测试结果,选取了马丁路德金的《I have a dream》演讲稿进行统计。
全篇单词量:1666
测试结果:
原文:http://www.cnblogs.com/shaloo/p/5841877.html
内容总结
以上是互联网集市为您收集整理的C语言词频统计设计全部内容,希望文章能够帮你解决C语言词频统计设计所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。