C言語で文字列を連結してソートする方法を教えてください。

文字列を結合して並び替える手法の一つとして、C言語では文字列配列とソートアルゴリズム(バブルソート、挿入ソートなど)を使用できます。以下にサンプルコードを示します。

#include <stdio.h>
#include <string.h>

int main() {
    char str1[100], str2[100], merged[200];
    int i, j, k, len1, len2;

    printf("Enter the first string: ");
    gets(str1);
    printf("Enter the second string: ");
    gets(str2);

    len1 = strlen(str1);
    len2 = strlen(str2);

    // 合并字符串
    for (i = 0; i < len1; i++) {
        merged[i] = str1[i];
    }
    for (j = 0; j < len2; j++) {
        merged[i++] = str2[j];
    }
    merged[i] = '\0';

    // 使用冒泡排序对合并后的字符串进行排序
    for (i = 0; i < strlen(merged) - 1; i++) {
        for (j = 0; j < strlen(merged) - i - 1; j++) {
            if (merged[j] > merged[j + 1]) {
                // 交换字符位置
                char temp = merged[j];
                merged[j] = merged[j + 1];
                merged[j + 1] = temp;
            }
        }
    }

    printf("Merged and sorted string: %s", merged);

    return 0;
}

このプログラムではまずユーザーから2つの文字列の入力を求めます。そして、strlen関数を使用して文字列の長さを取得します。次に、2つの繰り返し構造を使用して、2つの文字列を1つの文字列配列に結合します。最後に、結合された文字列配列に対して、バブルソートアルゴリズムを使用してソートを実施し、最終的なソートされた文字列を出力します。

bannerAds