运用指针数组实现字符串的排序
时间: 2024-05-01 22:22:17 浏览: 102
可以使用指针数组来实现字符串的排序,具体步骤如下:
1. 定义一个指针数组,数组中的每个元素都是一个指向字符串的指针。
2. 使用循环读入多个字符串,将每个字符串的地址存储到指针数组中。
3. 使用冒泡排序或快速排序等算法对指针数组进行排序,排序的依据是指向的字符串的大小关系。
4. 输出排序后的字符串。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STR_NUM 10
#define MAX_STR_LEN 100
void sort_string(char **str_list, int str_num) {
int i, j;
char *temp;
for (i = 0; i < str_num - 1; i++) {
for (j = 0; j < str_num - 1 - i; j++) {
if (strcmp(str_list[j], str_list[j+1]) > 0) {
temp = str_list[j];
str_list[j] = str_list[j+1];
str_list[j+1] = temp;
}
}
}
}
int main() {
char str_list[MAX_STR_NUM][MAX_STR_LEN];
char *ptr_list[MAX_STR_NUM];
int i, j, str_num;
printf("请输入字符串个数(不超过%d个):", MAX_STR_NUM);
scanf("%d", &str_num);
printf("请输入%d个字符串:\n", str_num);
for (i = 0; i < str_num; i++) {
scanf("%s", str_list[i]);
ptr_list[i] = str_list[i];
}
sort_string(ptr_list, str_num);
printf("排序后的字符串为:\n");
for (i = 0; i < str_num; i++) {
printf("%s\n", ptr_list[i]);
}
return 0;
}
```
在这个示例代码中,使用了一个二维字符数组 `str_list` 存储多个字符串,同时定义了一个指针数组 `ptr_list`,将每个字符串的地址存储到指针数组中。然后使用 `sort_string` 函数对指针数组进行排序,最后输出排序后的字符串。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![c](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)