结构体内数据如和赋给数组?
时间: 2023-09-14 12:15:58 浏览: 104
可以将结构体内的数据赋值给数组,具体的实现方式则需要根据具体的需求来选择。
如果想要将一个结构体的成员变量赋值给数组,可以直接使用数组下标进行赋值。例如,假设有如下结构体:
```c
struct Person {
char name[20];
int age;
char gender;
};
```
可以定义一个包含3个元素的结构体数组people,然后将其中一个元素的name赋值给一个名为name_arr的字符数组,示例代码如下:
```c
struct Person people[3] = {
{"Tom", 20, 'M'},
{"Mary", 18, 'F'},
{"John", 22, 'M'}
};
char name_arr[20];
name_arr = people[0].name;
```
如果想要将多个结构体中的某个成员变量赋值给数组,可以使用循环来遍历结构体数组,并逐个将成员变量的值赋给数组中相应的元素。例如,假设有如下结构体:
```c
struct Person {
char name[20];
int age;
char gender;
};
```
可以定义一个包含3个元素的结构体数组people,然后将其中所有元素的name值赋值给一个名为name_arr的字符数组,示例代码如下:
```c
struct Person people[3] = {
{"Tom", 20, 'M'},
{"Mary", 18, 'F'},
{"John", 22, 'M'}
};
char name_arr[3][20];
int i;
for (i = 0; i < 3; i++) {
strcpy(name_arr[i], people[i].name);
}
```
在这个示例代码中,定义了一个包含3个元素的结构体数组people,然后定义了一个二维字符数组name_arr,用于存储所有结构体中的name值。通过循环遍历结构体数组,逐个将name的值赋给name_arr数组中相应的元素。需要注意的是,要使用strcpy函数将字符串复制到name_arr数组中,而不能直接使用赋值操作符=。
阅读全文