C语言输入一行英文句子,统计其中的单词个数(这里的单词是指有>=1个大小写字母连续出现所组成的子串,非大小写字母出现可认为一个单词结束)。句子长度不超过50。
时间: 2024-06-13 08:09:18 浏览: 30
以下是C语言统计单词个数的代码,其中使用了gets()函数获取用户输入的句子,然后遍历句子中的每个字符,根据空格和字母的出现情况来统计单词个数:
```c
#include <stdio.h>
int countWords(char s[]) {
int count = 0; // 用于统计单词数
int inword = 0; // 标记是否在单词中
int i = 0; // 用于循环取出字符串中每个元素
while (s[i]) { // 字符数组最后是以结束符结尾,当是s[i]为结束符时结束循环
if (s[i] == ' ') { // 当为空格时标记为0
inword = 0;
} else if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) { // 当元素为字母时进入
if (inword == 0) { // 当第一次进入单词时单词数加1,然后修改标记为1,当连续字母出现时不重复计数
count++;
inword = 1;
}
} else { // 当元素不为空格也不为字母时,标记为0
inword = 0;
}
i++;
}
return count;
}
int main() {
char s[51]; // 句子长度不超过50
gets(s);
printf("%d\n", countWords(s));
return 0;
}
```