在主函数中输入10个等长的字符串。用另一函数对他们进行排序,然后再主函数输出这10个排好序的数列(分别用数组法和指针法实现)
一、数组法实现
void str_sort(char str[][32], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (strcmp(str[j], str[j + 1]) > 0)
{
char temp[20];
strcpy(temp, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], temp);
}
}
}
}
int main()
{
char str[10][32];
int i;
for (i = 0; i < 10; i++)
{
scanf("%s", str[i]);
}
str_sort(str,10);
for (i = 0; i < 10; i++)
{
printf("%s\n", str[i]);
}
}
二、指针法实现
void str_sort(char(*p)[32], int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (strcmp(*(p + j), *(p + j + 1)) > 0)
{
char temp[20];
strcpy(temp, *(p + j));
strcpy(*(p + j), *(p + j + 1));
strcpy(*(p + j + 1), temp);
}
}
}
}
int main()
{
int i;
char str[10][32];
for (i = 0; i < 10; i++)
{
scanf("%s", *(str + i));
}
str_sort(str,10);
for (i = 0; i < 10; i++)
{
printf("%s\n", *(str + i));
}
}