#include <stdio.h>
// 二つの文字列を、先頭から順に、異なる文字か
// 文字列終端になるまで文字コートを比較する。
int compare(char *m1, char *m2)
{
int i = 0;
while (*(m1 + i) && *(m2 + i)) {
if (*(m1 + i) > *(m2 + i))
return 1;
if (*(m1 + i) < *(m2 + i))
return -1;
i++;
}
return *(m1 + i) > *(m2 + i);
}
int main()
{
char *month[] = {
"January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
};
int i, j;
printf("整列前 ");
for (i = 0; i < 12; i++)
printf("%s ", month[i]);
printf("\n");
for (i = 0; i < 11; i++) {
for (j = i; j < 12; j++) {
// 文字列を比較し、左が大きかったら、入れ替える
if (compare(month[i], month[j]) > 0) {
char *tmp = month[i];
month[i] = month[j];
month[j] = tmp;
}
}
}
printf("整列後 ");
for (i = 0; i < 12; i++)
printf("%s ", month[i]);
printf("\n");
return 0;
}