编写程序,输入一行字符(可能包括英文字母,数字字符等其他字符),要求统计其中单词的个数,单词只由英文字母构成
问题描述:
#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;
}