之前一直用c++里的sort用习惯了;非常简单方便。昨天同学让我帮忙debug的一道题目是考察qsort的用法,我也顺便了解了一下,在此进行总结。

qsort基本用法

头文件:stdlib.h

用 法:_CRTIMP void __cdecl qsort(void, size_t, size_t,int ()(const void, const void));

参 数:

1 待排序数组首地址

2 数组中待排序元素数量

3 各元素的占用空间大小

4 指向函数的指针,用于确定排序的顺序

各种类型的cmp函数怎么写?

整数类型比较

int compareInt(const void *a, const void *b)
{
return (*(int *)a - *(int *)b);
}
qsort(num, TEST_SIZE, sizeof(int), compareInt);

浮点数类型比较

int compareFloat(const void *a, const void *b)
{
return (*(float *)a - *(float *)b);
}
qsort(num, TEST_SIZE, sizeof(float), compareFloat);

字符数组类型比较

int compareChar(const void *a, const void *b)
{
return (*(char *)a - *(char *)b);
}
qsort(num, TEST_SIZE, sizeof(char), compareChar);

字符串类型比较

int compareString(const void *a, const void *b)
{
return strcmp((char*)a, (char*)b);
}
qsort(stringarr, TEST_SIZE, sizeof(stringarr[0]), compareString);
分类: c/c++

发表评论

电子邮件地址不会被公开。 必填项已用*标注