qsort排序字符串数组
时间: 2023-12-23 12:01:11 浏览: 123
qsort
qsort是一个C语言标准库中的函数,它用于对数组进行排序。在排序字符串数组时,可以使用qsort来实现按照字典顺序对字符串进行排序。首先需要自定义一个比较函数,来告诉qsort如何比较字符串的大小。比较函数需要接受两个const void*类型的参数,表示数组中的两个元素。然后在比较函数中将这两个参数转换为字符串指针,通过strcmp函数来比较它们的大小。最后将比较函数作为参数传递给qsort函数,同时还需要指定数组的起始地址、数组的长度以及每个元素的大小。调用qsort函数后,数组中的字符串将按照字典顺序进行排序。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void* a, const void* b) {
return strcmp(*(const char**)a, *(const char**)b);
}
int main() {
char* strings[] = {"apple", "orange", "banana", "grape"};
int length = sizeof(strings) / sizeof(strings[0]);
qsort(strings, length, sizeof(char*), compare);
for (int i = 0; i < length; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
以上代码中,compare函数用于比较两个字符串的大小,然后在main函数中调用qsort函数对字符串数组进行排序。排序完成后,会按照字典顺序输出排序好的字符串数组。
阅读全文