使用c语言编写wc命令统计字符数、单词数、行数的案例
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关使用c语言编写wc命令统计字符数、单词数、行数的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们知道linux操作系统上有一个非常
千家信息网最后更新 2026年11月04日使用c语言编写wc命令统计字符数、单词数、行数的案例
这篇文章将为大家详细讲解有关使用c语言编写wc命令统计字符数、单词数、行数的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
我们知道linux操作系统上有一个非常常用的命令,用来统计字符数、单词数以及行数的wc命令。使用c语言来编写一个类似功能的程序
编写该程序时,需要掌握两个函数的用法,getchar()以及putchar()。
getchar用来从标准输入中读取一个字符,而putchar则是向标准输出打印一个字符。统计标准输入字符数比较简单,只要getchar函数还能读入字符,统计字符数的变量就自增加1。统计行数也简单,只要读入的字符为换行符\n则将统计函数的变量自增加1。
这里的主要难点在于如何统计单词的数量,这里我的思路是,设定一个状态变量IN_WORD,当读入的字符是空白字符时(空格、水平制表符、换行符都为空白字符),IN_WORD值为0,统计的单词数目不变,当等到读入一个非空白字符时,统计单词的数目加1,IN_WORD值为1,当该状态值为1时,即使读入了非空白字符,单词统计的数目也不变动。
下面,贴出代码
#include#include #define IN_WORD 1#define OUT_WORD 0void main (void){ int nc,nw,nl; char c,word_flag; nc = nw = nl = 0; word_flag = OUT_WORD; while ((c = getchar()) != EOF) { nc ++; if (c == '\n') { nl ++; } if (!isspace(c) && word_flag == OUT_WORD) { nw ++; word_flag = IN_WORD; } else if (isspace(c) && word_flag == IN_WORD) { word_flag = OUT_WORD; } } printf("%d\t%d\t%d\n", nc, nw, nl);}
上述代码还是非常的简单的,nc,nw,nl三个变量分别来统计字符数、单词数以及行数。而word_flag是用来记录状态的,状态分为两种,IN_WORD以及OUT_WORD。
接下来,我们来测试下上述代码。下面是一段文本:
Product-minded engineers are developers with lots of interest in the product itself. They want to understand why decisions are made, how people use the product, and love to be involved in making product decisions.They're someone who would likely make a good product manager if they ever decide to give up the joy of engineering. I've worked with many great product-minded engineers and consider myself to be this kind of developer. At companies building world-class products, product-minded engineers take teams to a new level of impact.
上述文本共有86个单词,共五行。
# cat 1.txt | ./a.out 542 86 5
可以看到,该程序可以正常统计字符数、单词数以及行数。
关于使用c语言编写wc命令统计字符数、单词数、行数的案例就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
字符
统计
单词
命令
变量
状态
空白
语言
代码
函数
数目
标准
程序
案例
换行符
文本
更多
篇文章
输入
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海挚品互联网科技有限公司
北京路客互联网科技有限公司
合肥互联网科技公司
齐家互联网科技
西安互联网科技公司
重庆互联网医院沙龙医盟信息科技
彤创互联网科技有限公司
昭通互联网科技选哪家
互联网与医疗科技
哈尔滨屹滨互联网科技有限公司
国大互联网教育科技有限公司工作
翼展科技 首家互联网医院
佛山市拉法互联网科技有限公司
互联网科技资金流入
互联网硬科技公司
云鲸互联网络科技有限公司
银川新华互联网科技学校是国营吗
科技互联网经济论坛
广西泛欧互联网科技有限公司
互联网领先科技成果宣传视频
工业互联网科技新基建
北京互联网科技有限公司
金融科技与互联网金融
九亚互联网科技
互联网科技宣传片
镁科技互联网资讯平台
山东吉时兔互联网科技有限公司
老年人脱离互联网科技的作文
承德科技产业互联网发展
广东鹅鹅鹅互联网科技有限公司