编写程序,输入一行字符(可能包括英文字母,数字字符等其他字符),要求统计其中单词的个数,单词只由英文字母构成

编写程序,输入一行字符(可能包括英文字母,数字字符等其他字符),要求统计其中单词的个数,单词只由英文字母构成

问题描述:

#include<stdio.h>
#include<ctype.h>
int main()
{

printf("输入一行字符:\n");
char ch;
int i,count=0,word=0;

while((ch=getchar())!='\n')
{
if(isalpha(ch))
}

if(ch==' ')

word=0;

else if(word==0)

{

word=1;

count++;

}

printf("总共有 %d 个单词\n",count);

return 0;

}

修改如下:

#include<stdio.h>
#include<ctype.h>
int main()
{
    printf("输入一行字符:\n");
    char ch,pre=0;
    int i,count=0,word=0;

    while((ch=getchar())!='\n')
    {
        if( isalpha(pre) && (!isalpha(ch)) ) //前一个字符是字母,并且当前字符是非字母
            count++;
        pre = ch;
    }
    //输入回车后,最后一个单词没有统计
    if( isalpha(pre) && (!isalpha(ch)) ) //前一个字符是字母,并且当前字符是非字母
        count++;
    printf("总共有 %d 个单词\n",count);
    return 0;
}