题目描述
在main函数中输入10个不等长的字符串,另外写一个函数对它们按字典序从小到大排序。并在main函数中输出这10个已经排好序的字符串。
输入
共有10行,每行一个字符串。输入保证每行的字符串长度不超过100个字符。请注意字符串中有可能包含空格。
输出
与输入格式相同,每行输出一个排好序之后的字符串。
请注意行尾输出换行。
#include<bits/stdc++.h>
using namespace std;
static void ranks(char* p)
{
int i, j, k = 0;
char temp[50];
for (i = 0; i < 9; i++)
{
k = i;
for (j = i + 1; j < 10; j++)
if (strcmp(p + k * 50, p + j * 50) > 0)
k = j;
if (k != i)
{
strcpy(temp, p + i * 50);
strcpy(p + i * 50, p + k * 50);
strcpy(p + k * 50, temp);
}
}
}
int main()
{
char str[10][50];
int i;
char* p = str[0];
for (i = 0; i < 10; i++)
{
gets(str\[i\]);
}
ranks(p);
for (i = 0; i < 10; i++)
printf("%s\\n", str\[i\]);
return 0;
}