设计一个c语言统计输入字符串的单词个数,单词之间用空格分割。
时间: 2024-10-16 17:12:19 浏览: 54
设计一个 C 语言程序来统计输入字符串的单词个数,你可以遵循以下几个步骤:
1. 定义函数 `count_words(char* str)`,这个函数接收一个字符串作为输入参数。
2. 创建一个整型变量 `word_count` 初始化为0,用于记录单词数量。
3. 使用一个 while 循环遍历整个字符串,直到遇到空字符 '\0' 表示字符串结束。
4. 在循环内部,检查当前字符是否为空格。如果是空格,则说明前一串字符是一个完整的单词,将 `word_count` 加1。
5. 如果不是空格,继续读取下一个字符,除非遇到空字符。
6. 在遇到非空格字符且之后也是非空格的情况下,表示当前正在处理一个单词,不需要额外的操作。
7. 循环结束后,由于最后一个单词可能不会以空格结尾,所以需要单独处理一次,然后将 `word_count` 自增1。
8. 函数返回 `word_count`。
下面是一个简单的 C 程序示例实现:
```c
#include <stdio.h>
#include <string.h>
int count_words(char *str) {
int word_count = 0;
int i = 0;
// 跳过开头的空格
while (str[i] == ' ') {
i++;
}
while (str[i]) { // 遍历字符串直到空字符
if (str[i] != ' ') { // 非空格字符
while (str[i] != ' ' && str[i]) { // 找到下一个空格或字符串结束
i++;
}
}
word_count++; // 增加单词计数
i++; // 跳过空格
}
// 检查最后一个单词,如果没有空格则包含到最后
if (str[i - 1] != ' ') {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("请输入字符串(以空格分隔单词): ");
fgets(input, sizeof(input), stdin);
int result = count_words(input);
printf("输入字符串中有 %d 个单词。\n", result);
return 0;
}
```
阅读全文