二级指针实现字符串排序
时间: 2023-09-02 12:12:19 浏览: 111
二级指针可以用于排序一个字符串数组。以下是一个示例程序,它使用二级指针来实现字符串排序:
```c
#include <stdio.h>
#include <string.h>
#define MAX 5
void sort_strings(char **, int);
int main()
{
char *strings[MAX] = {"hello", "world", "apple", "orange", "banana"};
int i;
printf("Original strings:\n");
for (i = 0; i < MAX; i++)
printf("%s\n", strings[i]);
sort_strings(strings, MAX);
printf("Sorted strings:\n");
for (i = 0; i < MAX; i++)
printf("%s\n", strings[i]);
return 0;
}
void sort_strings(char **strings, int n)
{
int i, j;
char *temp;
for (i = 0; i < n-1; i++)
for (j = i+1; j < n; j++)
if (strcmp(strings[i], strings[j]) > 0)
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
```
在这个程序中,我们定义了一个字符串数组 `strings`,它包含了 5 个字符串。我们使用二级指针来传递这个字符串数组给 `sort_strings` 函数。该函数使用嵌套循环和 `strcmp` 函数来比较字符串,并交换它们的位置以实现排序。最后,我们打印出排序后的字符串数组。
在这个程序中,我们使用了二级指针来传递字符串数组。由于一个字符串数组是一个指针数组,每个指针指向一个字符串,因此我们需要使用一个指向指针的指针来传递这个数组。这就是为什么我们使用 `char **strings` 来声明函数参数的原因。
阅读全文