在字符串中找出ASCII码值最大的字符,将其放在第一个位置上

在字符串中找出 ASCII 码值最大的字符,将其放在第一个位置上,
并将该字符前的原字符向后顺序移动。例如,输入字符串为:
ABCDeFGH ,输出为:eABCDFGHsy5

img

img


//仅供参考,谢谢!

#include<stdio.h>

int main()
{
    char a[512], c;
    int maxi = 0, i;
    // 此处用了scanf代替gets函数,根据自己语言改回来
    scanf("%[^\n]c", a);

    for (i = 0; a[i] != '\0'; i++)
    {
        if (a[i] > a[maxi])
            maxi = i;
    }
    c = a[maxi];

    // 循环把此前所有元素后移一位
    for (i = maxi - 1; i >= 0; i--)
    {
        a[i + 1] = a[i];
    }

    // c变量赋值给第一个元素
    a[0] = c;

    // 输出移动后的字串
    puts(a);


    return 0;
}