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

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

定义几个数组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;
}

分类的标准是什么? 字母数字混合的字符串算什么?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632