统计单词个数

代码:

#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
int main(void) {
bool inWord = false; // 标记当前是否处于一个单词内部
int lines = 0; // 统计行数
int characters = 0; // 统计字符个数
int words = 0; // 统计单词个数
char c; // 存储读进来的字符
while ((c = getchar()) != EOF) {
++characters; // 每读进来一个字符,递增字符个数,包括了所有的字符
if (c == '\n') { // 根据换行符的个数来计算行数
++lines;
}
if (!isspace(c) && !inWord) { // 如果当前字符不是空白符而且不处于某一个单词内部,就认为遇到了一个新的单词
++words;
inWord = true;
}
if (isspace(c)) { // 如果当前是空白符,就认为不处于一个单词内部
inWord = false;
}
}
printf("Words: %d, Lines: %d, Characters: %d\n", words, lines, characters);
return 0;
}

执行结果:

Reason is
good, but is not
enough.
^Z
Words: 7, Lines: 3, Characters: 35
posted @   有空  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示