阅读量:0
c语言中可以通过使用库函数qsort()
来对字符串数组进行排序。
qsort()
函数原型为:
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
其中,base
为待排序数组的起始地址,nmemb
为待排序数组的元素个数,size
为每个元素的大小,compar
为比较函数的指针。
比较函数的原型为:
int compar(const void *a, const void *b);
其中,a
和b
为指向待比较元素的指针,比较函数应返回一个整数值:
- 若返回值小于0,则
a
应排在b
之前; - 若返回值大于0,则
a
应排在b
之后; - 若返回值等于0,则
a
和b
的相对顺序不变。
下面是一个示例代码,演示如何使用qsort()
函数对字符串数组进行排序:
#include <stdio.h> #include <stdlib.h> #include <string.h> int compare(const void *a, const void *b) { return strcmp(*(char **)a, *(char **)b); } int main() { char *array[] = {"apple", "banana", "orange", "grape", "lemon"}; int length = sizeof(array) / sizeof(array[0]); qsort(array, length, sizeof(array[0]), compare); for (int i = 0; i < length; i++) { printf("%s\n", array[i]); } return 0; }
输出结果为:
apple banana grape lemon orange
该示例中,字符串数组array
中存储了5个字符串,通过调用qsort()
函数对其进行排序,排序结果按照字母顺序排列。