结构体根据数字取结构体中内容
时间: 2024-06-16 11:07:45 浏览: 14
结构体是一种自定义的数据类型,它可以包含多个不同类型的成员变量。如果你想根据数字取结构体中的内容,可以使用数组或者switch语句来实现。
一种常见的方法是使用数组,将结构体对象存储在数组中,然后通过索引来获取对应的结构体内容。例如,假设有一个结构体定义如下:
```c
typedef struct {
int id;
char name[20];
int age;
} Person;
```
你可以创建一个Person类型的数组,并根据数字取出对应的结构体内容,示例代码如下:
```c
Person people; // 创建一个包含3个Person结构体对象的数组
// 给结构体对象赋值
people.id = 1;
strcpy(people.name, "Alice");
people.age = 25;
people.id = 2;
strcpy(people.name, "Bob");
people.age = 30;
people.id = 3;
strcpy(people.name, "Charlie");
people.age = 35;
int index = 1; // 要获取的结构体在数组中的索引
printf("ID: %d, Name: %s, Age: %d\n", people[index].id, people[index].name, people[index].age);
```
另一种方法是使用switch语句,根据数字选择对应的结构体内容。示例代码如下:
```c
Person person; // 创建一个Person结构体对象
int choice = 2; // 要选择的结构体内容的数字
switch (choice) {
case 1:
person.id = 1;
strcpy(person.name, "Alice");
person.age = 25;
break;
case 2:
person.id = 2;
strcpy(person.name, "Bob");
person.age = 30;
break;
case 3:
person.id = 3;
strcpy(person.name, "Charlie");
person.age = 35;
break;
default:
printf("Invalid choice!\n");
}
printf("ID: %d, Name: %s, Age: %d\n", person.id, person.name, person.age);
```
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)