我想获取的是一个新的列表 不用打印出来
时间: 2024-02-20 20:01:09 浏览: 14
如果你只是想得到一个按照ASCII从小到大排序后的新字符串列表,而不需要打印出来,那么可以将`printf`语句从`main`函数中删除,直接返回排序后的字符串列表指针即可。修改后的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char *key_names[] = {"apple", "banana", "orange", "grape"};
const int key_count = 4;
int compare(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
char **sort_strings(const char **strings, int count) {
char **sorted = (char **)malloc(count * sizeof(char *));
memcpy(sorted, strings, count * sizeof(char *));
qsort(sorted, count, sizeof(char *), compare);
return sorted;
}
int main() {
char **sorted_names = sort_strings(key_names, key_count);
// 该处省略打印代码
free(sorted_names);
return 0;
}
```
在上面的代码中,我们将`printf`语句从`main`函数中删除,直接返回了排序后的字符串列表指针`sorted_names`。这样,我们就得到了一个按照ASCII从小到大排序后的新字符串列表。需要注意的是,在使用完该字符串列表后,需要使用`free`函数释放它所占用的内存。
阅读全文
相关推荐


















