温馨提示×

c语言字符串数组如何排序

小亿
146
2024-02-01 11:33:48
栏目: 编程语言

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);

其中,ab为指向待比较元素的指针,比较函数应返回一个整数值:

  • 若返回值小于0,则a应排在b之前;
  • 若返回值大于0,则a应排在b之后;
  • 若返回值等于0,则ab的相对顺序不变。

下面是一个示例代码,演示如何使用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()函数对其进行排序,排序结果按照字母顺序排列。

0