C语言_qsort_冒泡排序(结构体数据)

#include<stdlib.h>
#include<string.h>
//使用qsort函数来排序结构体数据
// 
//创建结构体数据
struct Stu
{
	char name[20];
	int age;
};
//cmp_stu_name:回调函数
int cmp_stu_name(const void *e1, const void* e2)
{
	//e1 接收参数是void,所以需要强制转换类型:(struct Stu*)e1
	// 通过“->”找name:*e2->name
	//字符串比较大小:使用strcmp函数:
    //例子:abcdef,abbbafhwaifhj:a与a比,b与b比,c比b大,所以第一个字符串>第二字符串
	return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);
}

void test2()
{
	//使用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_name);

}

int main()
{
	//test1();
	test2();
	return 0;
}
posted @ 2026-05-05 11:29  火炎焱大兔汁  阅读(20)  评论(0)    收藏  举报