コードアップ演習文字列内で並べ替え

タイトル説明

長さが200以下の文字列を入力し、文字の昇順で並べ替えた文字列を出力します。

入る

テストデータには複数のグループがあります。文字列を入力してください。

出力

入力のグループごとに、処理された結果を出力します。

サンプル入力コピー

天琴

サンプル出力コピー

aiinnqt

促す

入力文字列にスペースが含まれる場合があることに注意してください。

 

アイデア:文字配列の内部を直接トラバースします。コードは「ダブルポインターアルゴリズム」に似ています。

ACコード

#include<cstdio>
#include<cstring>
using namespace std;

char str[200];

int main()
{
    while (gets(str) != NULL)
    {
        for (int i = 0;i < strlen(str) - 1;i++)
        {
            for (int j = i + 1;j < strlen(str);j++)
            {
                if (str[i] > str[j])
                {
                    char temp = str[j];
                    str[j] = str[i];
                    str[i] = temp;
                }
            }
        }
        puts(str);
        memset(str,0,sizeof str);
    }
    return 0;
}

getはスペースを無視して行ごとに読み込み、scanfはスペースを読み取ると読み取りを停止するため、次のコードを上書きできないことに注意してください。

#include<cstdio>
#include<cstring>
using namespace std;

char str[200];

int main()
{
    while (scanf("%s",str) != EOF)
    {
        for (int i = 0;i < strlen(str) - 1;i++)
        {
            for (int j = i + 1;j < strlen(str);j++)
            {
                if (str[i] > str[j])
                {
                    char temp = str[j];
                    str[j] = str[i];
                    str[i] = temp;
                }
            }
        }
        for (int i = 0;i < strlen(str);i++) printf("%c",str[i]);
        memset(str,0,sizeof str);
    }
    return 0;
}


 

おすすめ

転載: blog.csdn.net/smallrain6/article/details/107284863