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
为指向待比较元素的指针,比较函数应返回一个整数值:
a
应排在b
之前;a
应排在b
之后;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()
函数对其进行排序,排序结果按照字母顺序排列。