如何将结构体数组拼接
时间: 2023-10-18 11:06:44 浏览: 92
将结构体数组拼接可以通过以下步骤实现:
1. 定义一个新的结构体,其中包含原来结构体中的所有字段。
2. 创建一个新的结构体数组,长度为原来的两个结构体数组长度之和。
3. 将原来的两个结构体数组遍历,将每一个元素的字段值复制到新的结构体数组对应的元素中。
以下是一个示例代码,演示如何将两个结构体数组拼接:
``` C
#include <stdio.h>
#include <string.h>
struct Person {
char name[20];
int age;
};
int main() {
// 定义两个结构体数组
struct Person arr1[] = {{"Tom", 18}, {"Jack", 20}};
struct Person arr2[] = {{"Lucy", 19}, {"Alice", 22}};
// 定义一个新的结构体
struct Person new_person;
// 创建一个新的结构体数组,长度为原来的两个结构体数组长度之和
int new_len = sizeof(arr1) / sizeof(struct Person) + sizeof(arr2) / sizeof(struct Person);
struct Person new_arr[new_len];
// 将原来的两个结构体数组遍历,将每一个元素的字段值复制到新的结构体数组对应的元素中
int i, j;
for (i = 0; i < sizeof(arr1) / sizeof(struct Person); i++) {
new_person = arr1[i];
new_arr[i] = new_person;
}
for (j = 0; j < sizeof(arr2) / sizeof(struct Person); j++) {
new_person = arr2[j];
new_arr[i + j] = new_person;
}
// 打印新的结构体数组
for (i = 0; i < new_len; i++) {
printf("Name: %s, Age: %d\n", new_arr[i].name, new_arr[i].age);
}
return 0;
}
```
输出结果为:
```
Name: Tom, Age: 18
Name: Jack, Age: 20
Name: Lucy, Age: 19
Name: Alice, Age: 22
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)