qsort()的用法

1 qsort()的用法

1.1 qsort()函数原型

#include <stdlib.h>     

void qsort(
    void *base,
    size_t nmemb,
    size_t size,
    int (*compar)(const void *, const void *)
    );

1.2 qsort()示例代码

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

int compare_int(const void *a, const void *b){ 
	int *a1 = (int *) a; 
	int *b1 = (int *) b; 
	return *b1 - *a1; 
}

int compare_char(const void *a, const void *b){ 
	char c1 = *((char *) a); 
	char c2 = *((char *) b); 
	
	if(c1>='A' && c1<='Z') c1+=32; 
	if(c2>='A' && c2<='Z') c1+=32; 
	
	return c1 - c2; 
}

int main(void){ 
	//qsort 对整形数组排序 
	int arr[]={2, 10, 30, 1, 11, 8, 7, 111, 520}; 
	qsort(arr, sizeof(arr)/sizeof(int), sizeof(int), &compare_int); 
	for(int i=0; i<sizeof(arr)/sizeof(int); i++){ 
		printf(" %d", arr[i]); 
	}
	
	//qsort 可以对任何类型的数组进行排序 
	char arr1[]={"abcdefghiABCDEFGHI"}; 
	qsort(arr1, sizeof(arr1)/sizeof(char)-1, sizeof(char), &compare_char); 
	
	for(int i=0; i<sizeof(arr1)/sizeof(char)-1; i++){ 
		printf(" %c", arr1[i]); 
	}

	system("pause"); 
	return 0; 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值