C语言输入一个字符串,输入的只有两种字符,一种是字母,一种是空格。现在求一共有几个单词。注意,有可能有多个空格连在一起,开头和结尾都有可能有空格。
时间: 2024-10-26 14:16:26 浏览: 12
在C语言中,你可以通过遍历字符串并利用空格作为分隔符来计算单词的数量。这里是一个简单的示例程序,它会统计连续空格后的第一个非空格字符开始到下一个空格为止的所有字符作为一个单词:
```c
#include <stdio.h>
#include <ctype.h>
int count_words(char str[]) {
int word_count = 0;
int i = 0;
while (str[i]) { // 遍历整个字符串
if (isspace(str[i])) { // 如果遇到空格
++i; // 跳过空格
if (str[i] == '\0') break; // 检查是否到了字符串结束
} else { // 如果不是空格,开始一个新的单词计数
while (str[i] && !isspace(str[i])) { // 继续读取直到遇到下一个空格或字符串结束
++i;
}
++word_count; // 增加单词数
}
}
return word_count;
}
int main() {
char input[100];
printf("请输入字符串(只包含字母和空格):");
fgets(input, sizeof(input), stdin); // 从用户输入获取字符串
// 去掉最后的换行符
input[strlen(input) - 1] = '\0';
int word_count_result = count_words(input);
printf("总共有 %d 个单词。\n", word_count_result);
return 0;
}
```
在这个程序中,`count_words`函数会返回字符串中有多少个单词。用户可以在`main`函数中输入他们的字符串,然后输出单词的数量。
阅读全文