设计一个关于c语言统计输入字符串单词个数,单词之间用空格分隔输出结果。
时间: 2024-10-16 18:12:13 浏览: 48
在C语言中设计一个程序来统计输入字符串中的单词数量,你可以遵循以下步骤:
1. 首先,创建一个函数,比如`count_words(char* input)`,它接受一个指向字符串的指针作为参数。
2. 使用`strlen()`函数获取输入字符串的长度,然后从0开始遍历这个字符串。
3. 初始化一个整数变量`word_count`,用于记录单词数量,初始值设为0。
4. 创建一个临时变量`current_word`,用于存储当前单词。当遇到空格字符(' ')时,检查`current_word`是否为空,如果非空则表示找到了一个完整的单词,将`word_count`加一并清零`current_word`。
5. 如果当前字符不是空格,就将其添加到`current_word`中。遍历完整个字符串后,同样检查`current_word`是否为空,如果不为空,也意味着最后一个单词未结束,这时也需要将`word_count`加一。
6. 返回`word_count`作为最终的结果。
下面是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <string.h>
int count_words(char* input) {
int word_count = 0;
char current_word[100] = "";
for (int i = 0; input[i]; i++) {
if (input[i] == ' ') {
if (strlen(current_word)) {
word_count++;
strcpy(current_word, "");
}
} else {
strncat(current_word, &input[i], 1);
}
}
// 判断最后是否有单词
if (strlen(current_word)) {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除换行符
int wordCount = count_words(input);
printf("Number of words: %d\n", wordCount);
return 0;
}
```
阅读全文