回复 楼主 爱睡觉的猫

以下代码在Dev C++上编译运行通过。学习过程中,欢迎指教!

具体代码如下:

#include

#include

#include

#include

#define  BUFLEN         81

#define  MORELEN        20

char delimiters[] = " \".,;;!?)(\n";

bool Seek_word(char *more, char *filename);

unsigned int Word_count(char *filename);

char *Most_words(char *filename, unsigned int count, char *data);

char *Word(char more[][MORELEN], unsigned int count, char *data);

int main(void)

{

char buf[BUFLEN] = "\0";

char more[MORELEN] = "\0";

char data[MORELEN] = "\0";

char filename[FILENAME_MAX] = "myfile.txt";

FILE *pfile = NULL;

unsigned int count = 0;

printf("该程序能将英文文章存储在myfile.txt文件中!\n");

printf("能在存储的文件中查找给定的单词是否存在!\n");

printf("也能够统计存储的文件中英文单词的数量和出现频率最高的单词!\n");

printf("注意:该程序统计单词时,是区分大小的。如:“And”与“and”是两个单词!\n");

if((pfile = fopen(filename, "w")) == NULL)

{

printf("打开 %s 文件失败!\n\a\a\a", filename);

exit(1);

}

setvbuf(pfile, NULL, _IOFBF, BUFSIZ);

printf("\n现在请从键盘输入要存储在myfile.txt文件中的英文文章:\n");

while(true)

{

fgets(buf, BUFLEN, stdin);

if(buf[0] == '\n')

break;

if(EOF == fputs(buf, pfile))

{

printf("写入 %s 文件错误!\n\a\a\a", filename);

exit(1);

}

}

fclose(pfile);

pfile = NULL;

printf("\n请输入要查找的单词: ");

scanf(" %s", more);

if(Seek_word(more, filename))

printf("\n%s有在文章中!", more);

else

printf("\n%s没有在文章中!", more);

printf("\n该文件中英文单词的数量为:%u!\n", Word_count(filename));

count = Word_count(filename);

printf("\n该文件中出现频率最高的单词为:%s!\n", Most_words(filename, count, data));

return 0;

}

bool Seek_word(char *more, char *filename)

{

FILE *pfile = NULL;

char buf[BUFLEN] = "\0";

if(!(pfile = fopen(filename, "r")))

{

printf("打开 %s 文件失败!\n\a\a\a", filename);

exit(1);

}

setvbuf(pfile, NULL, _IOFBF, BUFSIZ);

while(true)

{

if(!fgets(buf, BUFLEN, pfile))

break;

char *pWord = strtok(buf, delimiters);

if(pWord)

{

do

{

if(strcmp(pWord, more) == 0)

{

fclose(pfile);

pfile = NULL;

return true;

}

pWord = strtok(NULL, delimiters);

}

while(pWord);

}

}

fclose(pfile);

pfile = NULL;

return false;

}

unsigned int Word_count(char *filename)

{

FILE *pfile = NULL;

char buf[BUFLEN] = "\0";

unsigned int count = 0;

if(!(pfile = fopen(filename, "r")))

{

printf("打开 %s 文件失败!\n\a\a\a", filename);

exit(1);

}

setvbuf(pfile, NULL, _IOFBF, BUFSIZ);

while(true)

{

if(!fgets(buf, BUFLEN, pfile))

break;

char *pWord = strtok(buf, delimiters);

if(pWord)

{

do

{

++count;

pWord = strtok(NULL, delimiters);

}

while(pWord);

}

}

fclose(pfile);

pfile = NULL;

return count;

}

char *Most_words(char *filename, unsigned int count, char *data)

{

FILE *pfile = NULL;

char buf[BUFLEN] = "\0";

char more[count][MORELEN];

unsigned int count1 = 0;

if(!(pfile = fopen(filename, "r")))

{

printf("打开 %s 文件失败!\n\a\a\a", filename);

exit(1);

}

setvbuf(pfile, NULL, _IOFBF, BUFSIZ);

while(true)

{

if(!fgets(buf, BUFLEN, pfile))

break;

char *pWord = strtok(buf, delimiters);

if(pWord)

{

do

{

strcpy(more[count1++], pWord);

pWord = strtok(NULL, delimiters);

}

while(pWord);

}

}

fclose(pfile);

pfile = NULL;

strcpy(data, Word(more, count, data));

return data;

}

char *Word(char more[][MORELEN], unsigned int count, char *data)

{

int i = 0, j = 0;

int max = 0;

for(i = 0; i < count; ++i)

{

int n = 0;

for(j = 0; j < count; ++j)

{

if((strcmp(more[i], more[j])) == 0)

++n;

}

if(n > max)

{

strcpy(data, more[i]);

max = n;

}

}

return data;

}

还在学习过程中,欢迎指教!

c语言单词频率课程,找频率最高的单词相关推荐

  1. 聊聊程序员如何学习英语单词:写了一个记单词的小程序

    背景: 关于英文对程序员的重要性,就不多说了! 英语的学习,有很多,今天也不聊多,只聊英语单词! 关于单词的记忆,找过很多方法,下载过很多软件. 如图(其它不好用的都卸载了): 上图算是我以前用过软件 ...

  2. 找字符串中最长单词C语言,C语言 在已知字符串中找最长单词

    编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词. 比如:"ni hao world",最长单词是5个字母 这个题目其实不难,但是很多初学者会没 ...

  3. 使用Java统计英文文章的单词频率。

    spark中的入门级程序:WordCount.这次不是使用spark来完成的,而是使用原生的Java API.只要英文文章符合书写的规定,那么这个程序就没有什么问题. 先将指定文件中的内容读取到Str ...

  4. C语言课程学籍管理课程书面报告,C语言学籍管理系统课程设计报告书

    <C语言学籍管理系统课程设计报告书>由会员分享,可在线阅读,更多相关<C语言学籍管理系统课程设计报告书(30页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计课程设计报告学 ...

  5. [转载] 《Python语言程序设计》课程笔记

    参考链接: Python程式设计语言 文章目录 第一部分 Python快速入门第1周 Python基本语法元素第2周 Python基本图形绘制 第二部分 Python基础语法第3周 基本数据类型3.1 ...

  6. 讲解c程序设计语言的比喻,《C语言程序设计》论文关于比喻在《C语言程序设计》课程教学中的应用论文范文参考资料...

    <C语言程序设计>课程教学中有关比喻的<C语言程序设计>论文范文参考资料 比喻的用法是将本质上相似的两个事物联系起来,通过熟悉的事物接近事物,实现让学习者更好地熟悉新事物的目的 ...

  7. c语言 英文单词频率统计 哈希存储

    c语言 英文单词频率统计 哈希存储 从一段英文文章中找到频率最大的几个单词,同时统计不同单词个数以及总单词个数,利用哈希进行存储. #include<stdio.h> #include&l ...

  8. 视频教程-Kali Linux渗透测试全程课与脚本语言编程系列课程-渗透测试

    Kali Linux渗透测试全程课与脚本语言编程系列课程 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥899.00 立即订 ...

  9. 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“itJava练习之翁恺MOOC——第六周

    Java练习之翁恺MOOC 一.前言 一.题目 1.第六周 单词长度 2.第六周 GPS数据处理 二.代码实现 1.单词长度 2.GPS数据处理 总结 一.前言 零基础学习Java语言 一.题目 1. ...

最新文章

  1. oracle删除导入的文件,oracle创建表空间,导入出文件,删除
  2. wampserver修改mysql用户密码
  3. 举例浅介grep、sed、awk
  4. 学生电脑哪个牌子好_专卖工作服哪个牌子好
  5. C++单元测试框架的比较(zz)
  6. java web中整合mq_spring-web 集成 rabbitmq
  7. python全景图像拼接_超详讲解图像拼接/全景图原理和应用 | 附源码
  8. lfm雷达信号处理matlab,雷达信号处理-线性调频(LFM)Chirp信号脉冲压缩
  9. freeswitch 会议创建命令
  10. SQL sever2008 r2安装闪退的解决办法
  11. 智能手环开发之 实现蓝牙(BLE)基本功能
  12. css: 照片有如层叠效果
  13. Python中ArcPy读取Excel表格数据创建矢量要素图层并生成属性表字段与内容
  14. tp5实现短信注册,调用第三方接口,电话通知,和短信通知都可以。
  15. APNG面向移动与未来的新动画图片格式揭秘与制作全技巧
  16. 骗子举报查询系统高级版源码
  17. 文本域自适应(textarea)
  18. 网赚APP的“俄罗斯套娃”游戏
  19. NOIP 2022 游记
  20. 用标签条码打印软件打印发货单标签

热门文章

  1. 小解CSDN论坛首页面的布局方式
  2. 中国移动飞信的研究 笔记一
  3. TCP重传机制有哪些?
  4. 想要应聘银行工作,这些分析你都清楚吗?
  5. 项目开发-疯狂连连看游戏开发
  6. 微信小程序实现课程表实例及部署教程
  7. 企业迁移云主机需要注意的事项有哪些
  8. 大学生能做兼职App开发吗?
  9. 点灯工程师的一天——ESP8266
  10. android java设计模式,Android开发之Java设计模式基础篇