输入一行字符,统计其中单词的个数。连续的字母构成单词,单词与单词之间用空格间隔,遇到其他无效字符可视为无效输入。
时间: 2024-10-06 15:01:16 浏览: 23
要实现这个功能,你可以编写一个简单的C程序,该程序使用`strtok()`函数来分割字符串中的单词。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char input[100];
printf("请输入一行字符: ");
fgets(input, sizeof(input), stdin); // 注意这里不包含换行符
// 移除末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
char *word = strtok(input, " "); // 分割器为空格
int word_count = 0;
while (word != NULL) { // 只要找到非空词,就增加计数
word_count++;
word = strtok(NULL, " ");
}
printf("输入中有 %d 个单词。\n", word_count);
return 0;
}
```
在这个程序中,`fgets()`用于从标准输入获取一行字符,包括空格和可能存在的其他无效字符。然后,`strtok()`函数遍历字符串,每次调用都会返回当前单词的指针,直到所有单词都被处理完。
当遇到空格、制表符或换行符时,`strtok()`会停止并返回NULL,这时我们可以通过检查`word`是否为NULL来确定是否已找到所有的单词。
运行程序后,它会提示用户输入一行字符,然后计算并输出单词的数量。