qsort函数排序结构体数据
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//qsort函数
//需要引用头文件
//qsort排序结构体数据
struct Stu
{
char name[20];
int age;
};
//按照名字的字母大小来比较
int cmp_stu_by_name(const void* e1, const void* e2)
{
//两个字符串比较用strcmp函数,需要引用头文件
//strcmp函数返回的值就是大于0或等于0或小于0的数字
return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);
}
//按照年龄大小来比较
int cmp_stu_by_age(const void* e1, const void* e2)
{
return ((struct Stu*)e1)->age - ((struct Stu*)e2)->age;
}
void test1()
{
//测试使用qsort来排序结构体数据
struct Stu s[] = { {"zhangsan", 15},{"lisi", 30},{"wangwu", 25}};
int sz = sizeof(s) / sizeof(s[0]);
//qsort(s, sz, sizeof(s[0]), cmp_stu_by_name);
qsort(s, sz, sizeof(s[0]), cmp_stu_by_age);
}
int main()
{
test1();
return 0;
}