C语言中怎么在结构体数组中删除多个数据
时间: 2023-06-17 10:08:49 浏览: 37
在C语言中,要删除结构体数组中的多个数据,可以采用以下的方法:
1. 遍历结构体数组,找到需要删除的数据。
2. 将需要删除的数据后面的所有数据前移一位,覆盖掉需要删除的数据。
3. 将数组长度减少对应的删除数量。
示例代码如下:
```c
#include <stdio.h>
typedef struct {
int id;
char name[20];
int age;
} Person;
int main() {
Person people[5] = {
{1, "Tom", 20},
{2, "Jerry", 21},
{3, "Mike", 22},
{4, "John", 23},
{5, "Jane", 24}
};
int delete_ids[3] = {2, 4, 5}; // 需要删除的数据的id
int delete_count = 3; // 需要删除的数据的数量
int len = 5; // 数组的长度
int i, j, k;
// 遍历数组,找到需要删除的数据
for (i = 0; i < delete_count; i++) {
for (j = 0; j < len; j++) {
if (people[j].id == delete_ids[i]) {
// 将需要删除的数据后面的所有数据前移一位
for (k = j; k < len - 1; k++) {
people[k] = people[k + 1];
}
len--; // 数组长度减1
}
}
}
// 打印删除数据后的数组
for (i = 0; i < len; i++) {
printf("id: %d, name: %s, age: %d\n", people[i].id, people[i].name, people[i].age);
}
return 0;
}
```
运行结果:
```
id: 1, name: Tom, age: 20
id: 3, name: Mike, age: 22
```
相关推荐


















