栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Linux C编程 统计文件单词数量(文件操作)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux C编程 统计文件单词数量(文件操作)


提示:欢迎大家来到别爱的CSDN

文章目录
  • 前言
  • 一、怎么统计文本中的单词数量?
  • 二、状态机
    • 1.状态机原理图
    • 2.具体实现
  • 总结
  • 参考资料


前言

今天是一个练手Linux环境下进行c语言编程的小项目


一、怎么统计文本中的单词数量?

一本小说中的单词数可以达到数万或者更多,那么我们怎么能快速计算单词的数量呢?下面我就来介绍状态机。

二、状态机 1.状态机原理图


我们是状态机初始化状态设置为OUT状态,当识别为字母时就会进入IN状态,中间如果遇到分隔符的话,就会再次变为OUT状态,我们通过计算状态变换的次数,来计算单词的数量。

2.具体实现

在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开发高级课程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号