一道简单的C语言编程题

 

逐个字符判断,如果大于插入字符,则该字符之后所有字符后移一个位置,插入字符写入该字符位置

char *insert(char *string ,char c)
{
    int i,j,n = 0;
    for(i=0;string[i] != 0;i++)
        n++;
    for(i=0;string[i] != 0;i++)
    {
        if(string[i] >= c)
        {
            for(j=n;j>i;j--)
                string[j] = string[j-1];
            string[i] = c;
            break;
        }
    }
    if(i==n)
        string[n] = c;
    return string;
}

void main()
{
    char string[50] = {0};
    scanf("%s",string);
    getchar();
    char c;
    scanf("%c",&c);
    char *p = insert(string,c);
    printf("%s",p);
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m