攸宁0123 2021-12-14 16:18 采纳率: 100%
浏览 34
已结题

c语言 指针实训 字符串分类

输入一个字符串,要求按照字符串内容分类,字母放在字符数组a中,数字放在字符数组b中,其他符号放在e中打印出来。

  • 写回答

3条回答 默认 最新

  • 关注

    定义几个数组char buf[100],a[100],b[100],e[100];
    用buf接收字符串,然后遍历字符串就是了

    img

    代码如下:

    #include <stdio.h>
    int main()
    {
        char buf[100],a[100],b[100],e[100];
        int i=0;
        int na = 0,nb=0,ne=0;
        gets(buf);
        while(buf[i])
        {
            if(buf[i]>='a' && buf[i]<='z')
                a[na++] = buf[i];
            else if(buf[i]>='A' && buf[i]<='Z')
                a[na++] = buf[i];
            else if(buf[i]>='0' && buf[i]<='9')
                b[nb++]=buf[i];
            else
                e[ne++] = buf[i];
            i++;
        }
        a[na]=0;
        b[nb]=0;
        e[ne]=0;
        printf("字母:%s\n",a);
        printf("数字:%s\n",b);
        printf("其它:%s\n",e);
        return 0;
    }
    
    

    用指针的话:

    #include <stdio.h>
    int main()
    {
        char buf[100],a[100],b[100],e[100];
        char* p=buf;
        int i=0;
        int na = 0,nb=0,ne=0;
        gets(buf);
        while(*p != '\0')
        {
            if(*p>='a' && *p<='z')
                a[na++] = *p;
            else if(*p>='A' && *p<='Z')
                a[na++] = *p;
            else if(*p>='0' && *p<='9')
                b[nb++]=*p;
            else
                e[ne++] = *p;
            p++;
        }
        a[na]=0;
        b[nb]=0;
        e[ne]=0;
        printf("字母:%s\n",a);
        printf("数字:%s\n",b);
        printf("其它:%s\n",e);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月14日
  • 已采纳回答 5月6日
  • 创建了问题 12月14日