li579 2020-04-26 14:22 采纳率: 0%
浏览 213
已采纳

请问这道c语言函数问题怎么做?

输入一个字符串,字符串仅包含三个字符,首尾字符仅为大写字母或小写字母或数字,中间字符为“减号”符,用指针操作字符串,将其中的首尾字符展开形成字符串。即将其中形如“a-f”、“A-D”、“3-8”的形式展开成“abcdef”、“ABCD”、“345678”,若出现诸如“A-9”、“f-a”(不符合ASCII顺序)、“B-f”(大小写不能混)等形式则提示字符串不合理,无法展开。

  • 写回答

1条回答 默认 最新

  • qtchen_1988 2020-04-26 16:55
    关注
    #include <stdio.h>
    #include <malloc.h>
    
    
    int main()
    {
        char *in = (char *)malloc(sizeof(char)*4);
        int i;
        for(i=0;i<3;i++)
            in[i] = getchar();
        in[i] = '\0';
    
        int a,b,d,flag;
        a = in[0];
        b = in[2];
        d = b - a;
        flag = 0;
        if((a >= 'A' && a <= 'Z') && (b >= 'A' && b <= 'Z'))
        {
            if(d > 1)
                flag = 1;
        }
        else if((a >= 'a' && a <= 'z') && (b >= 'a' && b <= 'z'))
        {
            if(d > 1)
                flag = 1;
        }
        else if((a >= '0' && a <= '9') && (b >= '0' && b <= '9'))
            if(d > 1)
                flag = 1;
        if(flag)
        {
            char *out = (char *)malloc(sizeof(char)*(d+2));
            for(i=0;i<(d+1);i++)
                out[i] = a+i;
            out[i] = '\0';
    
            printf("Output:%s\n",out);
        }
        else
        {
            printf("Input error!!!!\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误