c语言统计若干行单词的个数
时间: 2025-02-01 09:19:16 浏览: 28
### 使用C语言统计多行文本中的单词数量
为了实现这一目标,可以采用逐字符读取的方式处理输入流。每当检测到从空白状态进入非空白状态时,则认为遇到了一个新的单词。下面是一个完整的程序示例:
```c
#include <stdio.h>
#define IN 1 /* 在单词内 */
#define OUT 0 /* 单词外 */
int main(void) {
int c, nl = 0, nw = 0, nc = 0;
int state = OUT;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\n' || c == '\t')
state = OUT;
else if (state == OUT) {
state = IN;
++nw;
}
}
printf("总字数:%d 行数:%d 单词数:%d\n", nc, nl, nw);
return 0;
}
```
此代码片段定义了一个`main()`函数用于接收标准输入直到遇到文件结束符(EOF)[^1]。通过检查当前字符是否为空白字符(如空格、制表符或换行),以及前一时刻的状态来决定是否增加单词计数器。
当程序处于`OUT`状态下首次遇见非空白字符时,表示新单词开始,此时会将状态切换至`IN`并将单词计数加一;而一旦再次碰到任何类型的空白字符,则立即将状态重置回`OUT`[^3]。
阅读全文
相关推荐


















