c語言中可以通過使用庫函數(shù)qsort()
來對字符串?dāng)?shù)組進(jìn)行排序。
qsort()
函數(shù)原型為:
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
其中,base
為待排序數(shù)組的起始地址,nmemb
為待排序數(shù)組的元素個數(shù),size
為每個元素的大小,compar
為比較函數(shù)的指針。
比較函數(shù)的原型為:
int compar(const void *a, const void *b);
其中,a
和b
為指向待比較元素的指針,比較函數(shù)應(yīng)返回一個整數(shù)值:
a
應(yīng)排在b
之前;a
應(yīng)排在b
之后;a
和b
的相對順序不變。下面是一個示例代碼,演示如何使用qsort()
函數(shù)對字符串?dāng)?shù)組進(jìn)行排序:
#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;
}
輸出結(jié)果為:
apple
banana
grape
lemon
orange
該示例中,字符串?dāng)?shù)組array
中存儲了5個字符串,通過調(diào)用qsort()
函數(shù)對其進(jìn)行排序,排序結(jié)果按照字母順序排列。