在c语言中,输入一行字符,统计其中包括多少单词,单词之间用一个或多个空格分隔
时间: 2024-12-16 12:22:47 浏览: 15
在C语言中,统计输入的一行字符中包含多少单词,可以采用分词处理的方式。首先读取一行字符串,然后遍历这个字符串,遇到空格或其他空白字符(如制表符、换行符等)就认为是一个单词结束。每当找到一个单词结束,计数器加一,直到遍历完整个字符串。最后,由于最后一个单词之后不会跟着空格,所以需要额外检查一次是否还有字符存在。
以下是简单的步骤和伪代码描述:
1. 使用`fgets()`函数从标准输入读取一行字符到一个动态分配的字符数组中。
2. 初始化一个计数器(如`wordCount`)为0。
3. 遍历字符数组,对于每个字符:
- 如果遇到空格或者其他空白字符:
- 判断当前位置是不是数组的结尾(即不是'\0'),如果不是,将`wordCount`加一。
4. 遍历结束后,如果数组结尾还有非空白字符,说明还有一个单词,再把`wordCount`加一。
5. 返回`wordCount`作为单词的数量。
```c
#include <stdio.h>
#include <string.h>
int countWords(char* line) {
int wordCount = 0;
while (*line != '\0') { // 遍历到字符串的结尾
if (*line == ' ' || *line == '\t' || *line == '\n') { // 遇到空白字符
if(line != &str[line.length]) { // 检查不是最后一个字符
wordCount++;
}
}
line++; // 移动到下一个字符
}
// 判断最后一部分是否有单词
if(*line != '\0' && isalpha(*line)) { // 判断是否字母
wordCount++;
}
return wordCount;
}
int main() {
char input[100];
fgets(input, sizeof(input), stdin);
int wordCount = countWords(input);
printf("包含的单词数: %d\n", wordCount);
return 0;
}
```
阅读全文