MST

星途 面试题库

面试题:C语言指针数组在函数间传递与复杂操作

编写一个函数,该函数接收一个指针数组作为参数,指针数组中的每个指针指向一个字符串。函数要实现对这些字符串按字典序进行排序(可使用任何经典排序算法)。在主函数中定义并初始化这样一个指针数组,调用该函数进行排序,并打印排序前后的字符串数组。
48.7万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// 比较函数,用于qsort
int compare(const void *a, const void *b) {
    return strcmp(*(const char **)a, *(const char **)b);
}

// 排序函数
void sortStrings(char *strings[], int n) {
    qsort(strings, n, sizeof(char *), compare);
}

int main() {
    char *strings[] = {"banana", "apple", "cherry"};
    int n = sizeof(strings) / sizeof(strings[0]);

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

    sortStrings(strings, n);

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

    return 0;
}
  1. compare函数:用于qsort的比较函数,通过strcmp比较两个字符串。
  2. sortStrings函数:使用qsort对字符串指针数组进行排序。
  3. main函数:定义并初始化字符串指针数组,打印排序前的数组,调用排序函数,然后打印排序后的数组。