用指针对三个字符串排序
时间: 2023-06-25 20:01:53 浏览: 133
下面是用指针对三个字符串进行排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
// 比较函数
int compare(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN], str3[MAX_LEN];
char *p[3] = {str1, str2, str3}; // 定义指针数组,指向三个字符串
// 输入三个字符串
printf("请输入三个字符串:\n");
scanf("%s%s%s", str1, str2, str3);
// 排序
qsort(p, 3, sizeof(char *), compare);
// 输出排序后的结果
printf("排序后的结果为:\n");
printf("%s\n%s\n%s\n", str1, str2, str3);
return 0;
}
```
在上述代码中,我们首先定义了三个字符串 `str1`、`str2` 和 `str3`,然后定义了一个指针数组 `p`,使其指向这三个字符串。接着,我们通过 `scanf` 函数分别输入了这三个字符串。
然后,我们调用了 C 标准库中的 `qsort` 函数,对指针数组 `p` 中的元素进行排序。在排序时,我们需要定义一个比较函数 `compare`,该函数的作用是比较两个字符串的大小。因为 `qsort` 函数需要比较任意两个元素的大小,所以我们需要将比较函数的参数类型定义为 `const void *`,并在函数内部将其转换为 `char **` 类型,以便比较两个字符串的大小。
最后,我们输出排序后的结果,即三个字符串按照字典序从小到大排列的顺序。
阅读全文
相关推荐
![c](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)