提示:欢迎大家来到别爱的CSDN
文章目录- 前言
- 一、怎么统计文本中的单词数量?
- 二、状态机
- 1.状态机原理图
- 2.具体实现
- 总结
- 参考资料
前言
今天是一个练手Linux环境下进行c语言编程的小项目
一、怎么统计文本中的单词数量?
一本小说中的单词数可以达到数万或者更多,那么我们怎么能快速计算单词的数量呢?下面我就来介绍状态机。
二、状态机 1.状态机原理图
我们是状态机初始化状态设置为OUT状态,当识别为字母时就会进入IN状态,中间如果遇到分隔符的话,就会再次变为OUT状态,我们通过计算状态变换的次数,来计算单词的数量。
在Linux下的csnd文件夹下新建countword文件
cd csdn //转到csdn目录下 mkdir countword//新建countword文件 cd countword//转到countword目录下
创建Count.c的文件夹
cp ../../b.txt ./ //将复制小说放到当前文件夹 touch Count.c//创建.c文件
c文件内部代码
#include#define OUT 0 //设置OUT状态 #define IN 1 //设置IN状态 #define INIT OUT //初始化状态 int count_word(char *filename){ //文件名 int status=INIT;//初始化状态 int word=0;//单词量初始数 FILE *fp = fopen(filename,"r");//可读权限 if(fp == NULL) return -1; char c; while((c=fgetc(fp))!=EOF){ if((c<65||c>90)&&(c<97||c>122)){//非字母的 status=OUT; }else if(OUT==status) { status=IN; word++; } } return word; } int main(int argc,char *argv[]){ if(argc<2)return -1; printf("word %dn",count_word(argv[1]));//输出单词总数 }
使用gcc编译Count.c文件为count
gcc -o count Count.c //编译Count.c文件
使用编译后的文件进行统计单词数
./count b.txt //调用文件统计b.txt文件中的单词总数
这就是我计算b.txt这本小说中单词数的总量
通过在Linux环境下进行C语言编程统计小说中的单词总数,我用了状态机这个模型,主要就是通过状态的转变,来计算单词数量的总和。初次学习,如果有错误,欢迎大家进行讨论。
参考资料C/C++ Linux开发高级课程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)