gpt4 book ai didi

c - 按字母顺序打印列表中的某些单词

转载 作者:太空宇宙 更新时间:2023-11-03 23:51:31 24 4
gpt4 key购买 nike

我正在浏览一个单词列表,如果一个单词符合特定条件,它将被打印到屏幕上。棘手的一点是单词打印到屏幕上的顺序是按字母顺序排列的。这样做的最佳方法是什么?我猜想首先对列表进行排序效率很低,所以我会选择链表,但遗憾的是 c doesn't have one :(

最佳答案

最好的方法是在打印之前对单词进行排序。 C 提供了一个排序函数,称为qsort()。它适用于数组,需要传递一个比较函数。下面是使用 qsort()int 数组进行排序的示例。

static int cmp_int (const void *a, const void *b);

//...
int arr[] = { 2, 4, 6, 1, 3, 5 };
qsort(arr, sizeof(arr)/sizeof(*arr), sizeof(*arr), cmp_int);

正确实现cmp_int() 的诀窍是认识到比较函数接收的类型与&arr[0] 的类型相同。由于 arr 是一个 int 数组,这意味着 cmp_int() 将接收 int * 类型。如果第一个参数小于第二个参数,此函数应该返回一个负值,如果第一个参数大于第二个参数,则返回一个正值,否则返回 0。

static int cmp_int (const void *a, const void *b) {
const int *aa = a;
const int *bb = b;
return (*aa > *bb) - (*aa < *bb);
}

关于c - 按字母顺序打印列表中的某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19061809/

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