小小zot 2023-11-01 06:59 采纳率: 100%
浏览 33
已结题

输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数

输出结果错误,为什么会错误呢?
求指导!感觉好像没有很大的问题

img

img

  • 写回答

3条回答 默认 最新

  • 柯本 2023-11-01 11:36
    关注

    程序有多个问题
    首先char ayy[]={0},它只有一个字符长度,你的输入会导致下标溢出,这个也是你运行报错的原因
    其次,scanf的%s是不能接收空格的,且后面不能有\n
    给你个我写的参考

    #include <ctype.h>
    #include <string.h>
    #include <stdio.h>
    int main()
    {
            char s[256],c;
            int i,a,b,d,e;
            fgets(s,256,stdin);
            a=b=d=e=0;
            for(i=0;i<strlen(s);i++)
             {
                    c=s[i];
                    if (isalpha(c))
                      a++;
                      else
                 if (isspace(c))
                              b++;
                             else
                                       if (isdigit(c))
                                  d++;
                           else
                             e++;
    
    
             }
            printf("%d %d %d %d\n",a,b,d,e);
            return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日