c语言字符串排序,使用标准库的排序方式

#include <stdio.h>
#include <string.h>

// 比较函数,用于判断两个字符串的大小关系
int compare(const void* a, const void* b) {
    return strcmp(*(const char**)a, *(const char**)b);
}

// 字符串数组排序函数
void sortStringArray(char* arr[], int size) {
    qsort(arr, size, sizeof(char*), compare);
}

int main() {
    // 示例用法
    char* arr[] = {"apple", "banana", "carrot", "date"};
    int size = sizeof(arr) / sizeof(arr[0]);

    printf("排序之前的数组:\n");
    for (int i = 0; i < size; i++) {
        printf("%s\n", arr[i]);
    }

    sortStringArray(arr, size);

    printf("\n排序之后的数组:\n");
    for (int i = 0; i < size; i++) {
        printf("%s\n", arr[i]);
    }

    return 0;
}

 

该示例使用了C标准库中的qsort函数来进行字符串数组的排序。首先定义了一个比较函数compare,该函数接受两个指向字符串指针的void*类型参数,并使用strcmp函数来比较字符串的大小关系。然后,在sortStringArray函数中调用qsort函数来对字符串数组进行排序,传递进去的比较函数为compare。最后在main函数中,使用示例字符串数组调用sortStringArray函数进行排序,并输出排序前后的结果。

请注意,这只是一个简单的示例代码,实际情况中可能需要根据具体需求做出相应的修改和扩展。

 

posted @ 2023-06-28 13:39  小城熊儿  阅读(116)  评论(0编辑  收藏  举报