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つの文字列配列に結合します。最後に、結合された文字列配列に対して、バブルソートアルゴリズムを使用してソートを実施し、最終的なソートされた文字列を出力します。