qq_63001612 2021-10-15 09:03 采纳率: 72.7%
浏览 410
已结题

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

#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;

}

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-10-15 09:19
    关注

    修改如下:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 10月15日