意从键盘输入若干文本(包含不同数量的单词),每行以回车结束,以Ctrl+z作为输出结束符,并分别统计每一行文本的单词数,输出每一行的单词数的c语言代码。
时间: 2023-06-19 21:03:24 浏览: 182
从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分类计数,最后显示出这三类的计数结果
5星 · 资源好评率100%
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
int word_count = 0;
char c;
while ((c = getchar()) != EOF) {
if (isspace(c)) { // 判断是否为空格、换行符等
printf("%d\n", word_count);
word_count = 0; // 重置单词计数器
}
else {
word_count++;
}
}
printf("%d\n", word_count); // 输出最后一行的单词数
return 0;
}
```
解释一下代码的实现思路:
1. 先定义一个变量 `word_count`,用于统计每一行的单词数;
2. 使用 `getchar()` 函数逐个读入每个字符,直到遇到EOF(也就是输入Ctrl+z)为止;
3. 每读入一个字符,就判断它是否为空格、换行符等,如果是,就说明当前单词已结束,需要输出单词数,并重置 `word_count`;
4. 如果不是空格等,就说明当前还在一个单词内,需要继续累加 `word_count`;
5. 最后,再输出最后一行的单词数即可。
需要注意的一点是,我们在判断是否为空格等时,使用了 `isspace()` 函数,这是一个标准库函数,需要在头文件 `<ctype.h>` 中引入。这个函数可以判断一个字符是否为空格、换行符、制表符等,非常方便。
阅读全文