c语言输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
时间: 2023-12-26 07:18:11 浏览: 87
可以使用C语言的字符串处理函数和循环来实现该功能。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[1000];
int word_count = 0;
int is_word = 0;
printf("请输入一行字符:");
fgets(str, 1000, stdin); // 从标准输入读取一行字符
// 统计单词数
for (int i = 0; i < strlen(str); i++) {
if (str[i] != ' ' && str[i] != '\n' && str[i] != '\t') { // 判断是否为字母或数字
if (!is_word) { // 如果之前不是单词,说明现在开始了一个新单词
word_count++;
is_word = 1;
}
} else {
is_word = 0; // 如果是空格或换行符,说明当前单词结束
}
}
printf("单词数为:%d\n", word_count);
return 0;
}
```
首先使用`fgets()`函数从标准输入读取一行字符,并存储在字符数组`str`中。然后使用循环遍历字符串中的每个字符,如果当前字符不是空格、换行符或制表符,则说明当前处于一个单词中。如果之前不是单词,说明开始了一个新单词,因此单词计数器加1。如果当前字符是空格、换行符或制表符,则说明当前单词结束,将标记`is_word`设为0。最后输出单词计数器的值即可。
阅读全文