输入一行字符,统计其中单词的个数。这里连续的字母构成单词,单词与单词之间用空格间隔,遇到其他无效字符可视为无效输入。c语言编程
时间: 2024-10-15 08:20:06 浏览: 42
在 C 语言中,你可以使用标准库函数来解决这个问题。首先,你需要读取用户输入的一行字符,然后通过遍历字符串,判断每个字符是否属于空格或者字母,如果不是,则认为已经找到一个单词结束。最后统计非空格字符的数量减去一(因为数组下标从0开始)。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <ctype.h> // 包含用于检查字符类型的头文件
int count_words(char input[]) {
int word_count = 0; // 初始化单词计数器为0
int i;
for (i = 0; input[i] != '\0'; i++) { // 遍历输入字符串直到遇到'\0'
if (isspace(input[i]) || !isalpha(input[i])) { // 如果遇到空格或不是字母
if (i > 0 && isalpha(input[i - 1])) { // 如果前一个字符是字母,说明找到了一个单词
word_count++;
}
} else if (isalpha(input[i])) { // 如果是字母,继续检查下一个字符
continue;
}
}
// 如果字符串最后一个字符是单词的一部分,也需要加一
if (isalpha(input[i - 1])) {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("请输入一行字符:");
fgets(input, sizeof(input), stdin); // 读取用户输入
input[strcspn(input, "\n")] = '\0'; // 清除换行符
int wordCount = count_words(input);
printf("单词总数: %d\n", wordCount);
return 0;
}
```
在这个程序中,`count_words()` 函数负责计算单词数,而 `main()` 函数负责获取用户的输入并调用这个函数。
阅读全文