指针数组实现字符串排序
时间: 2024-06-16 13:00:50 浏览: 153
用指针数组的方法将字符串排序
指针数组实现字符串排序是一种比较常见的排序方法,其核心思想是通过对指针数组进行排序,实现对字符串数组的排序。
具体实现方法如下:
1. 定义一个指针数组,数组中每个元素都是指向字符串的指针。
2. 通过遍历字符串数组,将每个字符串的地址存入指针数组对应的元素中。
3. 对指针数组进行排序,可以使用快速排序、冒泡排序等常见的排序算法。
4. 最后通过遍历指针数组,输出排序后的字符串即可。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STR_LEN 100
#define MAX_STR_NUM 10
void sort_str_array(char **str_arr, int arr_len) {
int i, j;
char *temp;
for (i = 0; i < arr_len - 1; i++) {
for (j = i + 1; j < arr_len; j++) {
if (strcmp(str_arr[i], str_arr[j]) > 0) {
temp = str_arr[i];
str_arr[i] = str_arr[j];
str_arr[j] = temp;
}
}
}
}
int main() {
char str_arr[MAX_STR_NUM][MAX_STR_LEN];
char *ptr_arr[MAX_STR_NUM];
int i, n;
printf("Enter number of strings: ");
scanf("%d", &n);
printf("Enter %d strings: \n", n);
for (i = 0; i < n; i++) {
scanf("%s", str_arr[i]);
ptr_arr[i] = str_arr[i];
}
sort_str_array(ptr_arr, n);
printf("\nSorted strings are: \n");
for (i = 0; i < n; i++) {
printf("%s\n", ptr_arr[i]);
}
return 0;
}
```
阅读全文