c语言统计数组中单词个数
时间: 2023-10-30 10:05:06 浏览: 160
假设单词之间以空格或者其他非字母字符分隔,可以使用以下代码实现:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_SIZE 100
int main() {
char str[MAX_SIZE];
int word_count = 0;
int i;
printf("请输入字符串:");
fgets(str, MAX_SIZE, stdin);
for (i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i]) && !isalpha(str[i+1])) {
word_count++;
}
}
printf("单词个数为:%d\n", word_count);
return 0;
}
```
代码解释:
1. 首先定义一个字符数组 `str`,用于存储输入的字符串,同时定义一个常量 `MAX_SIZE`,限制输入字符串的最大长度;
2. 定义一个整型变量 `word_count`,用于统计单词个数,初始化为0;
3. 使用 `fgets` 函数从标准输入中读取字符串,并存储到 `str` 数组中;
4. 使用 `for` 循环遍历 `str` 数组中的每个字符;
5. 如果当前字符是字母,并且下一个字符不是字母,则说明当前字符是一个单词的结尾,将单词计数器 `word_count` 加1;
6. 循环结束后,输出单词个数。
注意:上述代码中使用了 `isalpha` 函数判断字符是否为字母,需要包含头文件 `ctype.h`。此外,如果输入的字符串长度超过了 `MAX_SIZE`,可能会导致程序出错,需要进行额外的处理。
阅读全文