阅读量:0
在C语言中,可以使用标准库函数qsort
对结构体数组进行排序。下面是一个示例代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> // 定义一个结构体 struct Person { char name[20]; int age; }; // 比较函数,用于指定排序规则 int compare(const void *a, const void *b) { // 将void指针转换为结构体指针 const struct Person *personA = (const struct Person *)a; const struct Person *personB = (const struct Person *)b; // 按照年龄升序排列 if (personA->age < personB->age) { return -1; } else if (personA->age > personB->age) { return 1; } else { return 0; } } int main() { struct Person people[] = { {"Alice", 25}, {"Bob", 20}, {"Charlie", 30} }; int numPeople = sizeof(people) / sizeof(people[0]); // 使用qsort函数对结构体数组进行排序 qsort(people, numPeople, sizeof(struct Person), compare); // 输出排序后的结果 for (int i = 0; i < numPeople; i++) { printf("Name: %s, Age: %d\n", people[i].name, people[i].age); } return 0; }
以上代码使用qsort
函数对people
数组进行排序,根据年龄的大小进行升序排列。