要求:任给一个英文文本文件,统计该文本的所有单词(不区分大小写),包括其出现的总次数,频度,以及出现的行号和位置

1.进行数据结构的准备(链表)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Coordinate {int line;                       //行号int row;                        //列号struct Coordinate* next;
} Coord;typedef struct NUM {char Num[100];                  //单词float i;                        //次数Coord *P;struct NUM* next;
} number;void Sum();int main() {Sum();              //统计单词总数return 0;
}

2.Sum函数的具体描述

void Sum() {int i,j,row_1=1,line_1=1;float sum=0;char ch;number *N,*head,*end;head=(number*)malloc(sizeof(number));end=head;FILE*file;if((file=fopen("sum.txt","r"))==NULL) {          //选择相应的文本文件printf("不能打开文件");exit(0);}N=(number*)malloc(sizeof(number));while(fscanf(file,"%s",N->Num)!=EOF) {N->P=(Coord*)malloc(sizeof(Coord));N->i=1;end->next=N;end=N;sum++;fscanf(file,"%c",&ch);if(ch!='\n') {N->P->row=row_1;N->P->line=line_1;row_1++;} else {N->P->row=row_1;N->P->line=line_1;row_1=1;line_1++;}N=(number*)malloc(sizeof(number));}end->next=NULL;fclose(file);printf("这篇文章共有%.0f个单词\n",sum);number *A,*B;Coord* HEAD,*M,*END;A=head->next;B=A->next;while(A->next!=NULL) {HEAD=(Coord*)malloc(sizeof(Coord));HEAD=A->P;END=HEAD;while(B->next!=NULL) {if(strcasecmp(A->Num,B->Num)==0) {M=(Coord*)malloc(sizeof(Coord));A->i=A->i+B->i;B->i=0;M=B->P;END->next=M;END=M;B=B->next;} elseB=B->next;}if(strcasecmp(A->Num,B->Num)==0) {A->i=A->i+B->i;B->i=0;M=B->P;END->next=M;END=M;}A=A->next;B=A->next;END->next=NULL;}HEAD=(Coord*)malloc(sizeof(Coord));HEAD=A->P;END=HEAD;END->next=NULL;number*Node;Node=(number*)malloc(sizeof(number));Node=head->next;while(Node->next!=NULL) {if(Node->i!=0) {printf("%+10s   出现频率为%.2f 共%.0f次 : ",Node->Num,(Node->i)/sum,Node->i);while(Node->P->next!=NULL) {printf("在第%d行 第%d列、",Node->P->line,Node->P->row);Node->P=Node->P->next;}printf("在第%d行 第%d列 ",Node->P->line,Node->P->row);printf("\n");Node=Node->next;} elseNode=Node->next;}if(Node->i!=0) {printf("%+10s   出现频率为%.2f 共%.0f次 : ",Node->Num,(Node->i)/sum,Node->i);while(Node->P->next!=NULL) {printf("在第%d行 第%d列、",Node->P->line,Node->P->row);Node->P=Node->P->next;}printf("在第%d行 第%d列 ",Node->P->line,Node->P->row);}
}

运行结果:

文本单词统计(C语言)相关推荐

  1. c语言文件加密解密单词统计,C语言文件加密解密及单词统计程序.doc

    C语言文件加密解密及单词统计程序.doc (10页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 15.9 积分  高级语言程序设计 课程设计学 院 计算 ...

  2. python文本统计单词_Python实现文本单词统计

    在以前的文章中,我提到过Python标准库中的collections模块中的Counter类.它的作用非常大,这里我们要用利它来实现单词统计.对于任意一篇全英文的文本文件,我们要列出其中每一个单词各自 ...

  3. C语言二叉树字符统计,C语言实现二叉树-利用二叉树统计单词数目

    昨天刚参加了腾讯2015年在线模拟考: 四道大题的第一题就是单词统计程序的设计思想: 为了记住这一天,我打算今天通过代码实现一下: 我将用到的核心数据结构是二叉树: (要是想了解简单二叉树的实现,可以 ...

  4. 文本文件单词统计(C语言)

    文本文件单词统计(C语言) 本人目前还是一位在校大学生,写文章的目的是为了记录一下当前所学,与其他爱好者或从业者相互学习交流.文本文件单词统计这个题目是学校的一次课程设计中的一道,在编写时也是参考了很 ...

  5. C语言怎么实现单词下落,如何用c语言实现单词统计

    如何用c语言实现单词统计 输入一串字符串,输出其中有多少个单词. 代码如下:#include #include #define SIZE 20 int main(){ char str[SIZE]={ ...

  6. c语言字符统计2sdut,C语言实验——单词统计(字符串) SDUT

    C语言实验--单词统计 Problem Description 从键盘输入一行字符(长度小于100),统计其中单词的个数,各单词以空格分隔,且空格数可以是多个. Input 输入只有一行句子.仅有空格 ...

  7. ##英语文本的单词统计 排序并输出前5%

    ## 英语文本的单词统计 排序并输出前5% /*统计英语文本英语个数及150%***************************************************** *//* /* ...

  8. linux awk统计文本单词,shell统计文本中单词的出现次数

    Ubuntu14.04 给定一个文本,统计其中单词出现的次数 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.txt # ...

  9. python 统计哈姆雷特词汇频率_Python练习15:文本单词频率统计:哈姆雷特,练习题,英文版...

    文本词频统计::一篇文章,出现了哪些词?哪些词出现的最多? ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬ ...

最新文章

  1. fastdfs安装_用asp.net core结合fastdfs打造分布式文件存储系统
  2. bzoj 3118: Orz the MST(单纯形)
  3. python源代码-Python 源码深度剖析
  4. RabbitMQ基本概念(一)-RabbitMQ的优劣势及产生背景
  5. JSBinding+SharpKit / 菜单介绍
  6. Eclipse中使用Ctrl键卡顿响应慢的解决方法
  7. python常用8大算法
  8. 写给大家的编程书(2)
  9. 《编译原理》课程教学大纲
  10. Luogu T16048 会议选址
  11. 电脑端一些快捷开源创建平台
  12. pacs文件浏览工具_啥?网络攻击浏览器让你惊惶失措?这里教你防患未然
  13. linux cadence快捷键,如何设置Cadence 16.6中PCB Editor的快捷键
  14. 软件持续集成(CI)、持续交付(CD)和持续部署(CD)
  15. java.lang.IllegalStateException: onMeasure() did not set the measured dimension by calling setMeasur
  16. vue请求接口报错500,进行拦截提示服务器错误
  17. 魅蓝手机ROOT权限获取
  18. 在计算机中汉字能否排序,你不得不知的Excel表格中汉字多种排序方法
  19. Intouch2020与施耐德PLC通讯
  20. 正点原子开发板STM32F407ZG-基于AD7606进行八路数据采集

热门文章

  1. markdown语法之表格
  2. 电商销售数据分析与预测(日期数据统计、按天统计、按月统计)
  3. 数字孪生 3D 风电场,智慧风电之海上风电
  4. android 齐刘海编程,[翻译]Android适配全面屏上的齐刘海
  5. Java课程设计-画图工具
  6. JAVA中三种URL连接方法
  7. Oracle知识点总结(三)
  8. ioredis.js tutorial
  9. 系统体系结构-概念和框架
  10. Deep Learning Networks: CNN-, RNN-