c语言Sqort用法
时间: 2025-04-19 09:42:35 浏览: 20
### C语言 `qsort` 函数使用方法
#### 头文件引入
为了能够调用 `qsort()` 函数,在程序开头应当包含标准库 `<stdlib.h>` 的声明[^3]。
```c
#include <stdlib.h>
```
#### 参数说明
- **void \*base**: 被排序数组的首地址。
- **size_t num**: 数组中的元素数量。
- **size_t size**: 单个元素所占空间大小(以字节计)。
- **int (*compar)(const void *, const void *)**: 指向比较函数的指针,用于定义两个元素之间的相对顺序关系。该函数接收两个参数,均为指向待比较元素的指针;返回负整数表示第一个参数小于第二个参数,零表示两者相等,正整数则意味着前者大于后者[^1]。
#### 字符串排序实例
当处理字符串这样的复杂数据结构时,可以通过自定义比较逻辑来实现特定需求下的排序操作。下面给出一段完整的代码片段展示如何利用 `qsort()` 对字符型数组进行升序排列:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 定义比较器:按字母表顺序从小到大排
static int compare(const void *a, const void *b){
return strcmp(*(char **)a , *(char **)b);
}
int main(){
char *arr[]={"apple", "orange", "banana"};
int n=sizeof(arr)/sizeof(char*);
printf("Before sorting:\n");
for(int i=0;i<n;++i)printf("%s ", arr[i]);
putchar('\n');
qsort((void*)arr,n,sizeof(char*),compare);
printf("After sorting:\n");
for(int i=0;i<n;++i)printf("%s ", arr[i]);
putchar('\n');
return 0;
}
```
此段代码实现了对字符串数组按照ASCII码值由低至高依次排序的功能,并通过前后对比展示了实际效果[^2]。
阅读全文
相关推荐








