输入一个字符串,将字符串中的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出形成一个新的字符串,输出新串。

输入一个字符串,将字符串中的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出形成一个新的字符串,输出新串。

  • 参考如下:
#include <iostream>
#include <cstring>
using namespace std;

void sort(char *a, int len)
{
    int i, j;
    char t;
    for(i = 0; i < len - 1; i++) 
    {
        int flag = 0; // 是否冒泡标识
        for(j = 0; j < len - i - 1; j++)
        {
            if (*(a + j) > *(a + j + 1)) // 从小到大冒泡
            {
                t = *(a + j);
                *(a + j) = *(a + j + 1);
                *(a + j + 1) = t;
                flag = 1; // 冒过泡了
            }
        }
        if (!flag) // 都没有冒泡,说明已排序好,直接跳出循环 
            break;
    }
}

int main() {
    
    char ch[100];

    cin >> ch;

    int len = strlen(ch);

    sort(ch, len);

    int m = 0;
    char ch1[100];
    for (int i = 1; i < len; i+=2)
    {
          ch1[m++] = ch[i];
    }

    ch1[m] = '\0';

    cout << ch1;

    return 0;
}