统计英文单词词频–C

思想:c和java有很大的区别,如果是c要进行字符串这类问题处理的话,是更多的算法,而java的话可以有很多类来帮助我们减少如何设计算法。所以硬是要用c的话应该这样,首先定义一个结构体,然后两个元素,一个是单词,一个是单词的频数,接下来就是读文件,读文件自然是按字符读,如果读的不是英文字符自动跳过,如果读的是英文字母的话可以记录一下起点,然后当读到空白或者标点之类的可以记录一下终点,然后中间就是读入的新单词,有了新单词之后我们可以和结构体里的内容比较了,如果结构体里有的话就是频数增加,如果结构体没有新单词的话把新单词加入结构体中并将频数设置为1。最后就是结构体的排序,依据词频排序。

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#define Word_Max 100
struct word{char w[Word_Max];int count;
}a[1000];
int main(void){FILE *fp;char words[10];char ch;int i = 0,j = 0,k = 0,flag = 0;/*1. i是控制读文件的起点,每读到一个英文字符都进一位,若不是英文字母则将起点设为0,重新开始读,另外进入else部分。2. j是为了检验结构体是否含有刚读的单词设置的起点,作用是循环结构体。3. k是为了增加结构体的数量,每增加一个新的单词就加1.4. flag是为了区别是否新读的单词在结构体里存在不存在,存在就count增1,不存在就纳入新的结构体并且count设置为1,千万别忘了在循环结束后改为0;*/if((fp = fopen("D:\word.txt","rb")) == NULL){printf("cannot open the file\n");}while(!feof(fp)){ch = tolower(fgetc(fp));//这里是将所有大写的字符转化为小写。if(isalpha(ch)){//if中的isalpha是判断是不是英文字母的库,头文件是ctypewords[i] = ch;i ++;}else{words[i] = '\0';for(j = 0;j <= k;j ++){if(strcmp(a[j].w,words) == 0){a[j].count ++;flag = 1;break;}}if(flag == 0){a[k].count = 1;strcpy(a[k].w,words);k ++;}flag = 0;i = 0;}}//按照词频从小到大排序for(int i = 0;i < k;i ++){for(int j = i + 1;j < k;j ++){if(a[i].count > a[j].count){word temp = a[i];a[j] = a[i];a[i] = temp;}}}for(int i = 0;i < k;i ++){printf("%s %d\n",a[i].w,a[i].count);}return 0;
}

统计英文单词词频(c版)相关推荐

  1. 使用Python+NLTK实现英文单词词频统计

    使用Python+NLTK实现英文单词词频统计 使用PythonNLTK实现英文单词词频统计 应用场景 Fork Me 参考运行环境 流程步骤图 详细步骤 读取文件 过滤特殊符号以及还原常见缩写单词 ...

  2. 首发:李航老师的《统计学习方法》第二版的代码实现(Github标星过万!)

    李航老师的<统计学习方法>第二版的代码实现更新完毕,本文提供下载.(黄海广) 李航老师编写的<统计学习方法>全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机. ...

  3. python 统计英文词频

    python 统计英文词频 (以1986-2017年考研英语真题为例) 运行截图: 代码: import re #除去简单词.序号等 excludes = ['the', 'of', 'to', 'a ...

  4. python统计英文单词个数_统计英文单词的个数的python代码 及 字符串分割

    字符串分割 str="a|and|hello|||ab" alist = str.split('|') print alist结果 str="a hello{这里换成5个 ...

  5. 对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序排列 前20词绘制词云图

    文章目录 前言 一.jieba是什么? 支持四种分词模式: 支持繁体分词 支持自定义词典 MIT 授权协议 二.直接上代码了 总结 前言 今天用jieba和词云库做个作业,顺便记录一下,作业要求: 1 ...

  6. 电信保温杯笔记——《统计学习方法(第二版)——李航》第16章 主成分分析

    电信保温杯笔记--<统计学习方法(第二版)--李航>第16章 主成分分析 介绍 总体主成分分析 基本思路 直观解释 定义 主要性质 主成分个数 规范化变量 样本主成分分析 样本主成分的定义 ...

  7. 电信保温杯笔记——《统计学习方法(第二版)——李航》第17章 潜在语义分析

    电信保温杯笔记--<统计学习方法(第二版)--李航>第17章 潜在语义分析 论文 介绍 单词向量空间 话题向量空间 话题向量空间 文本在话题向量空间的表示 从单词向量空间到话题向量空间的线 ...

  8. 小白学习:李航《统计学习方法》第二版第11章 条件随机场

    小白学习:李航<统计学习方法>第二版第11章 条件随机场 小白学习:李航<统计学习方法>第二版第11章 条件随机场(一)----马尔科夫随机场 马尔科夫随机场(Markov r ...

  9. split函数python统计英文单词_Python实现统计英文单词个数及字符串分割代码

    Python实现统计英文单词个数及字符串分割代码 这篇文章主要介绍了Python实现统计英文单词个数及字符串分割方法,本文分别给出代码实例,需要的朋友可以参考下 字符串分割 代码如下: str=&qu ...

最新文章

  1. 2021年大数据ELK(二十七):数据可视化(Visualize)
  2. c++ #define
  3. 学习笔记:Keras 错误提示
  4. mysql5.6 pt-query-digest,分析pt-query-digest输出信息
  5. kubernetes-Service
  6. 12-1。。。面试的一些体会吧
  7. php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分
  8. sqlserver修改实例名
  9. Qt之QSS(白色靓丽)
  10. InnoDB存储引擎相关问题整理
  11. discuz论坛引入iframe
  12. python目前版本强势英雄_最强竟然不是灭霸|用Python给漫威和DC英雄综合实力排位...
  13. 【TcaplusDB知识库】快速上手TDR表的增删查改操作
  14. ENVI学习总结(三)——图像几何校正
  15. 微信发红包测试用例设计
  16. Metasploitable渗透测试实战:ms17-010
  17. int,int*,(int*)区别
  18. 前端——14.用HTML做的小练习
  19. 第十六届全国大学智能车竞赛华东赛区成绩汇总
  20. react-native报错-Unable to resolve module ‘react’

热门文章

  1. 初窥Java哈希(如何解决Hash冲突)
  2. 主流监督式机器学习分类算法
  3. Socket多人联网游戏学习记录
  4. 一次完整的性能测试,测试人员需要做哪些工作?
  5. 服务器CPU和普通家用CPU有什么区别?服务器如何选择CPU配置?
  6. 方舟服务器最新,方舟生存进化新服开启公告 新增8组免费PVXc服务器
  7. Oracle增加字段及注释
  8. 2021年最新大厂php+go面试题集(三)
  9. 《Python量化投资》01 量化投资之单因子测试(概述,Pandas的适用)
  10. Mysql -- DQL详解