利用指针数组对字符串排序
时间: 2025-01-07 11:07:53 浏览: 6
### C语言指针数组对字符串进行排序
在C语言中,可以利用指针数组来存储多个字符串,并对其进行排序。下面展示了一个完整的示例代码,该代码实现了基于`qsort()`标准库函数的字符串升序排列功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义比较函数用于qsort()
int compare(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
int main() {
// 初始化指针数组并赋初值
char *arr[] = {"hello", "world", "this", "is", "test"};
int n = sizeof(arr)/sizeof(arr[0]);
// 输出原始顺序
printf("Before sorting:\n");
for(int i=0;i<n;++i){
printf("%s ", arr[i]);
}
putchar('\n');
// 调用qsort()进行排序
qsort(arr, n, sizeof(char*), compare);
// 打印已排序后的结果
printf("After sorting:\n");
for(int i=0;i<n;++i){
printf("%s ", arr[i]);
}
putchar('\n');
return 0;
}
```
此段代码首先定义了一组字符串常量组成的指针数组`arr`[^2]。接着声明了名为`compare`的辅助函数作为参数传递给`qsort()`,以便按照字典序对比两个字符串之间的大小关系[^5]。最后通过两次循环分别展示了未排序前和完成排序之后的状态。
阅读全文