用C语言while循环解决,输入一个文本,统计单词数和字符数
时间: 2024-03-01 14:50:57 浏览: 146
好的,下面是用C语言while循环实现统计单词数和字符数的代码:
```
#include<stdio.h>
#include<string.h>
int main()
{
char text[1000];
int i = 0, words = 0, characters = 0;
printf("请输入文本:\n");
fgets(text, 1000, stdin); // 从标准输入读入文本
// 统计单词数和字符数
while(text[i] != '\0') // 如果未到字符串结尾
{
if(text[i] == ' ' || text[i] == '\n' || text[i] == '\t') // 如果当前字符是空格、换行或制表符
{
words++; // 单词数加1
}
else
{
characters++; // 字符数加1
}
i++; // 继续扫描下一个字符
}
printf("单词数为:%d\n", words);
printf("字符数为:%d\n", characters);
return 0;
}
```
代码解释:
1. 同样定义了一个字符数组 `text`,用于存储输入的文本;
2. 定义了三个变量 `i`、`words` 和 `characters`,其中 `i` 用于扫描文本中的每一个字符,`words` 和 `characters` 分别用于统计单词数和字符数;
3. 使用 `fgets` 函数从标准输入读入文本,最多读入 1000 个字符;
4. 使用 `while` 循环遍历文本中的每一个字符,如果当前字符是空格、换行或制表符,则认为前面的字符组成了一个单词,单词数 `words` 加 1,否则字符数 `characters` 加 1;
5. 最后输出统计结果。
注意事项:为了避免统计错误,需要注意单词之间的分隔符,这里认为空格、换行和制表符都是单词的分隔符。
阅读全文