结构体数据重排列
时间: 2023-12-14 16:03:50 浏览: 21
如果您想对结构体数据进行重排列,可以使用C语言中的qsort函数。qsort函数可以根据您指定的排序规则,对数组中的数据进行快速排序。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义结构体
typedef struct {
int id;
char name[20];
} Person;
// 比较函数,按id升序排序
int cmp(const void *a, const void *b) {
const Person *pa = (const Person *)a;
const Person *pb = (const Person *)b;
return pa->id - pb->id;
}
int main() {
// 初始化结构体数组
Person people[3] = {
{3, "Tom"},
{1, "Jack"},
{2, "Alice"}
};
// 排序
qsort(people, 3, sizeof(Person), cmp);
// 输出排序结果
for (int i = 0; i < 3; i++) {
printf("id: %d, name: %s\n", people[i].id, people[i].name);
}
return 0;
}
```
在上面的示例代码中,我们定义了一个Person结构体,包含id和name两个成员。然后我们通过qsort函数对结构体数组people进行排序,排序规则是按照id升序排序。最后输出排序结果,可以看到输出结果是按照id升序排列的。您可以根据自己的需要修改比较函数,实现不同的排序规则。