qsort可否比较字符数组
时间: 2024-04-28 09:16:26 浏览: 198
qsort函数是C语言标准库中的一个排序函数,可以用于对数组进行排序。它可以比较字符数组,但需要使用适当的比较函数来指定比较规则。
在使用qsort函数时,需要提供一个比较函数作为参数,该函数用于定义元素之间的比较规则。对于字符数组的比较,可以使用strcmp函数来实现。strcmp函数会按照字典序比较两个字符串,并返回一个整数值表示它们的大小关系。
下面是一个示例代码,演示了如何使用qsort函数对字符数组进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 比较函数
int compare(const void* a, const void* b) {
const char* str1 = *(const char**)a;
const char* str2 = *(const char**)b;
return strcmp(str1, str2);
}
int main() {
char* arr[] = {"apple", "banana", "orange", "grape"};
int size = sizeof(arr) / sizeof(arr[0]);
// 使用qsort函数进行排序
qsort(arr, size, sizeof(char*), compare);
// 打印排序结果
for (int i = 0; i < size; i++) {
printf("%s ", arr[i]);
}
printf("\n");
return 0;
}
```
运行以上代码,输出结果为:apple banana grape orange
阅读全文