用C语言while循环解决,输入一个字符串,统计单词数和字符数
时间: 2024-03-01 14:51:20 浏览: 123
好的,我可以为您提供一个用C语言while循环解决的代码示例,如下所示:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i = 0, words = 0, chars = 0;
printf("请输入一个字符串:\n");
fgets(str, 100, stdin);
while (str[i] != '\0') {
if (isalpha(str[i])) {
chars++;
if (!isalpha(str[i+1]))
words++;
}
i++;
}
printf("字符串中含有 %d 个单词和 %d 个字符。\n", words, chars);
return 0;
}
```
上面的代码中,我们首先定义了一个字符数组 `str`,用于存储用户输入的字符串,同时还定义了三个变量 `i`、`words` 和 `chars`,其中 `i` 用于循环遍历字符串,`words` 用于记录单词数,`chars` 用于记录字符数。然后,我们通过调用 `fgets` 函数从标准输入流中读取用户输入的字符串,并将其存储到字符数组 `str` 中。
接下来,我们使用 while 循环遍历整个字符串,判断每个字符是否为字母,如果是,则将 `chars` 加 1,同时判断下一个字符是否为字母,如果不是,则将 `words` 加 1。最后,输出统计结果即可。
需要注意的是,此处使用了 ctype.h 头文件中的 isalpha 函数来判断字符是否为字母。同时,我们使用了 fgets 函数来读取用户输入的字符串,因为它可以在读取完指定长度的字符或读取到换行符时停止,从而避免了缓冲区溢出等问题。
阅读全文