用C语言输入一串字符串并计算其中的单词数
时间: 2024-12-02 22:20:53 浏览: 47
在C语言中,我们可以使用`fgets`函数从标准输入流中读取一行字符串,然后通过遍历字符串数组来计算单词数。下面是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的头文件
int count_words(char str[]) {
int word_count = 0;
int start_word = 0; // 记录当前单词开始的位置
for (int i = 0; str[i] != '\0'; i++) {
if (isspace(str[i])) { // 遇到空格或换行符,认为这是一个单词结束
if (i > start_word) { // 如果不是第一个字符,并且前面有内容,加1计数
word_count++;
}
start_word = i + 1; // 更新下一次搜索的起始位置
}
}
// 检查最后一个单词,因为在循环结束后,start_word还没更新
if (str[i] == '\0' && i > start_word) {
word_count++;
}
return word_count;
}
int main() {
char input[100];
printf("请输入字符串: ");
fgets(input, sizeof(input), stdin); // 使用fgets防止超长输入导致缓冲区溢出
// 移除字符串末尾的换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
int wordCount = count_words(input);
printf("字符串中有%d个单词。\n", wordCount);
return 0;
}
阅读全文