统计一篇英文短文中单词的个数,要统计单词的个数先要解决如何判别一个单词,应该从输入行的开头一个字符一个字符地去判别。假定把一篇英文短文放在数组s中,那么就相当于从s[0]开始逐个检查数组元素,经过一个空格或者若干个空格符之后找到的第一个字母就是一个单词的开头,此时利用一个计数器num进行累加1运算,在此之后若连续读到的是非空格字符,则这些字符属于刚统计到的那个单词,因此不应该将计数器num进行累加1,下一次计数应该是在读到一个空格或者若干个空格符之后再遇到非空格字符开始。因此,统计一个单词时不仅要满足当前所检查的这个字符是非空格,而且要满足所检查的前一个字符是空格。
时间: 2023-12-06 13:45:17 浏览: 191
以下是一个基于C语言的实现,可以用来统计一篇英文短文中的单词个数:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LEN 1000
int main() {
char s[MAX_LEN];
int num = 0, i = 0;
char prev_char = ' ';
// 读入英文短文
printf("请输入一篇英文短文(不超过%d个字符):\n", MAX_LEN);
fgets(s, MAX_LEN, stdin);
// 逐个检查字符
while (s[i] != '\0') {
if (isspace(s[i])) {
// 如果当前字符是空格
prev_char = ' ';
} else if (isalpha(s[i]) && isspace(prev_char)) {
// 如果当前字符是字母,并且前一个字符是空格
num++;
prev_char = s[i];
} else {
prev_char = s[i];
}
i++;
}
printf("该短文中包含%d个单词。\n", num);
return 0;
}
```
需要注意的是,上面的实现中使用了C标准库中的`isspace()`和`isalpha()`函数来判断一个字符是否为空格或字母。此外,程序还需要一个计数器`num`来统计单词个数,以及一个变量`prev_char`来记录上一个字符是否为空格,以便判断当前字符是否是一个单词的开头。
阅读全文