gpt4 book ai didi

c - 在 C 中使用 qSort 排序的数组字符串

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:10 25 4
gpt4 key购买 nike

问题很简单:有一些方法可以使返回“qsort”的有序数组反向返回,即我想避免使用任何辅助数组来使用 qsort 投资结果数组。

这是我的代码,它从标准输入字符串中读取待排序,并使用比较函数进行排序。

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

int cstring_cmp(const void *a, const void *b)
{
const char **ia = (const char **)a;
const char **ib = (const char **)b;
return strcasecmp(*ia, *ib);
/* strcmp functions works exactly as expected from
comparison function */
}

预先感谢您的回复,对不起我的英语

            int main (int argc, char *argv [])

{
int number;
char temp [4000];

printf("input number: ");
scanf("%d",&number);

char* array_string [number];
int i;
for (i=0;i<number;i++) {
scanf(" %[^\n]", temp);
array_string [i] = (char*)malloc((strlen(temp)+1)*sizeof(char));
strcpy(array_string[i], temp);
}


size_t large = sizeof(array_string) / sizeof(char *);
qsort(array_string,large ,sizeof(char *) ,cstring_cmp );
printf ("\n");
printf ("the sorted array list is:\n");
for (i=0;i<large;i++)
printf("%s\n", array_string [i]);
return 0;
}

最佳答案

您刚刚尝试过将参数的顺序颠倒到 strcasecmp 吗?

返回 strcasecmp(*ib, *ia);

关于c - 在 C 中使用 qSort 排序的数组字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com