怎么用指向指针的方法对5个字符串排序并输出
时间: 2024-05-05 16:19:47 浏览: 89
可以使用快速排序算法对5个字符串进行排序,具体步骤如下:
1. 定义一个指向字符数组的指针,指向5个字符串。
2. 定义一个快速排序函数,参数为指针类型的字符数组、左右边界。
3. 在快速排序函数中,选定一个基准值,将小于基准值的字符串放在基准值左边,大于基准值的字符串放在基准值右边,并返回基准值的位置。
4. 在主函数中调用快速排序函数,并输出排序后的字符串。
下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
void quickSort(char (*str)[100], int left, int right);
int partition(char (*str)[100], int left, int right);
int main()
{
char str[5][100] = {"hello", "world", "apple", "orange", "banana"};
quickSort(str, 0, 4);
for(int i = 0; i < 5; i++)
{
printf("%s\n", str[i]);
}
return 0;
}
void quickSort(char (*str)[100], int left, int right)
{
if(left < right)
{
int pivot = partition(str, left, right);
quickSort(str, left, pivot - 1);
quickSort(str, pivot + 1, right);
}
}
int partition(char (*str)[100], int left, int right)
{
char pivot[100];
strcpy(pivot, str[right]);
int i = left - 1;
for(int j = left; j < right; j++)
{
if(strcmp(str[j], pivot) < 0)
{
i++;
char temp[100];
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
char temp[100];
strcpy(temp, str[i + 1]);
strcpy(str[i + 1], str[right]);
strcpy(str[right], temp);
return i + 1;
}
```
输出结果为:
```
apple
banana
hello
orange
world
```
阅读全文