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

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

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

悬赏问题

  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址
  • ¥15 elmos524.33 eeprom的读写问题