方案三:
一种新的思路,用该字符是否为字母或连字符判断是否为一个单词,是程序更简单、更容易理解。
# include <stdio.h>
# define MAX 20
# define OUT 0
# define IN 1
int main(void)
{
int length[MAX];
int c;
int vocl = 0;
int state = OUT;
int i;
for(vocl = 0; vocl < MAX; vocl++){
length[vocl] = 0;
}
vocl = 0;
while((c = getchar()) != EOF){
if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c == '-'){
vocl++;
} else{
length[vocl]++;
vocl = 0;
}
}
for(vocl = 0; vocl < MAX; vocl++){
if(length[vocl] != 0){
printf("%2d ", vocl);
for(i = 1; i <= length[vocl]; i++){
putchar('*');
}
putchar('\n');
}
}
}