gpt4 book ai didi

c - 解读 qsort 行为

转载 作者:行者123 更新时间:2023-12-02 07:45:27 28 4
gpt4 key购买 nike

我的程序需要 qsort 的功能才能运行,但到目前为止还没有完成它的工作。

我实际上是在对单个字符值的数组进行排序,以便将它们分组,这样我就可以遍历数组并确定每个属性的计数。我的问题是 qsort 返回一个“已排序”数组作为

xxxxxbxbbbxfbxfbffffbxfxbbfbbbxxfxbxxfbbbbxbfxbxfbxbsxbbbxxbbxxffxbxfxfxbxxbxxfbbbfbxbbx
bbbsxfxbxbxxbfbfxbxxbxxbfxxbxsbfxxfxfxfffxbfxffbbfffsxsfbfbxbxbbbxxsbfbfbbbbbbxxfxfxffxf
xbxxbxfxbfbxbxxbxbxxbxbbffxxbxxffxxbxfxbxffxfsfxxfxxfxxfxfxxfxxbsxxbbbxsxxbbxxxbxfxsbxxx
ffbxfxxffbxxxfxxfxxfxfxxfffbxxxbxxxfffxsbbfffffxxxbbfxsbffxbxxfxbxxfbbfsbffsfffxfxfxbbffx
bxxfxbxxfxbbbfxxbbfxxbbbsxbxfbfbbxxbbfffxxfxxbbbfxxbxxxbbxxxbfxffxxxffxfxxffbxfsxbxxxfxfx
fsbbbxxxbfxfffsfxxxfssxxxfxfxxxxbxbbbxxbxxxxxxxxxxxxxxxxxxxfbfxxffxxbxxxxxxxsxsxxxxxxxxsxb
bxxxxxfxbxxxxfxxfxxxxxbbxfffbxbsxffbbbxsfbbfffbxbfbbxxbxxbbxxbffxfxxfxfbbxxbxfxxsfxxfxxbxf
xxbxxxbxbxbbxbbffxxxxbfbfxxxxxxfxffxxxxxxxxxxxxxxxxxxxxxbxffxbxbxbbxbbxxfbxfxbxxbxxbxbxxxb
xxbxbxbfbbffffffsbbxxbffbxfxxfxbfbfffsxbxxxsxxbbbbbxxxbxxxfxxfffxxxxxxxxxxxxxfxxbxxxxxxxxx
xxbfbxxxxxxxxxxxxxxxxxxxxxxxxxxbxbxxxxxfxxbxxxxffxbxxxxffxfbfffxbxxfxbfxbxxfxbxbfxxxxxfxbx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsbxxxxffxfxxxxxxxxxfxfxxxbffffxxxfbxbxfxxxxxxxxxxxxxxxxxxxxf
fxfxbfxxxfxxxxx

我认为问题与我的函数调用或比较方法有关。

int compare(const void *a, const void *b){
return *(char * const *) a - *(char * const *) b;
}

并用于

qsort(temp, lineCount, sizeof(char), compare);

其中 temp 是上面的字符数组,lineCount 是数组中的字符数。阵列的完整性和大小均已通过测试验证。

非常感谢任何帮助。

最佳答案

char * const * 是指向char的指针。您只需要一个指向 char 的指针。

尝试:

int compare(const void *a, const void *b){
return *(const char *) a - *(const char *) b;
}

此外,根据定义,sizeof(char) 始终等于 1。所以一些 C 程序员永远不会那样写出来。 (它是否使代码更易于阅读或只是表示您并不真正了解该语言,这是一个见仁见智的问题。在这种情况下我碰巧喜欢它,但仅供引用。)

关于c - 解读 qsort 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382853/

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