输入一行字符(小于等于80),统计其有多少个单词,设单词之间用空格分离
时间: 2024-12-16 20:22:59 浏览: 17
要实现这个功能,你可以使用C语言编写一个简单的程序,该程序逐个扫描输入的字符,遇到空格时认为一个单词结束,同时忽略非字母字符。以下是可能的代码实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含用于检查字符类型的头文件
int count_words(char input[], int length) {
int word_count = 0; // 初始化单词计数器
int i;
for (i = 0; i < length; i++) {
if (isspace(input[i])) { // 如果遇到空格
if (i > 0 && !isspace(input[i - 1])) { // 检查上一个字符是否也是空格,避免连续空格计入
word_count++;
}
} else if (isalpha(input[i])) { // 如果遇到字母
continue; // 继续遍历直到找到下一个空格
}
}
// 最后一个单词即使没有空格结尾,也算作一个
if (i > 0 && !isspace(input[i - 1])) {
word_count++;
}
return word_count;
}
int main() {
char input[81]; // 假设输入长度不超过80
printf("Enter a line of characters with spaces separating words: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取一行字符
size_t input_length = strlen(input);
input[input_length - 1] = '\0'; // 去掉fgets添加的换行符
int word_count = count_words(input, input_length);
printf("Number of words: %d\n", word_count);
return 0;
}
```
在这个程序中,`count_words` 函数负责计算输入字符串中的单词数量,通过`isspace`和`isalpha`函数来判断字符类型。`main`函数则接收用户输入,调用`count_words`并显示结果。
阅读全文