c语言统计多行单词个数,每个单词以多个空格或逗号分离
时间: 2024-03-07 15:49:10 浏览: 24
你可以使用循环遍历输入的字符串,同时使用一个计数器来记录单词个数。具体实现可以参考以下代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000
int countWords(char *str);
int main() {
char str[MAX_LEN];
printf("请输入一段字符串:\n");
fgets(str, MAX_LEN, stdin);
int count = countWords(str);
printf("单词个数为:%d\n", count);
return 0;
}
int countWords(char *str) {
int count = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (str[i] == ' ' || str[i] == ',') {
// 遇到空格或逗号,判断前面的字符是否为单词的一部分
if (i > 0 && str[i - 1] != ' ' && str[i - 1] != ',') {
count++;
}
} else if (i == len - 1) {
// 如果字符串以非空格、非逗号字符结尾,则最后一个单词未被计算
if (str[i] != ' ' && str[i] != ',') {
count++;
}
}
}
return count;
}
```
这里使用 `fgets` 函数读取用户输入的字符串,可以确保输入的字符串不会超过指定的长度。然后在 `countWords` 函数中,遍历字符串中的每个字符,如果遇到空格或逗号,则判断前面的字符是否为单词的一部分,如果是则计数器加一。同时,如果字符串以非空格、非逗号字符结尾,则最后一个单词未被计算,需要特殊处理。最后返回计数器的值即可。