运用结构体数组时如何使用 for 循环给结构体数组添加值?
时间: 2024-09-25 11:18:13 浏览: 66
Matlab使用单元数组和结构数组.docx
在C语言中,当你想要通过for循环向结构体数组添加新元素时,首先需要定义一个结构体,然后创建该结构体类型的数组。假设我们有一个名为`Person`的结构体,包含姓名`name`和年龄`age`两个成员,以下是示例:
```c
#include <stdio.h>
typedef struct {
char name[50];
int age;
} Person;
int main() {
// 定义一个Person类型的数组
Person people[10];
// 使用for循环添加元素
int i;
for (i = 0; i < 5; i++) { // 避免超过数组大小
printf("请输入第 %d 个人的姓名: ", i+1);
fgets(people[i].name, sizeof(people[i].name), stdin); // 输入字符串
printf("请输入第 %d 个人的年龄: ", i+1);
scanf("%d", &people[i].age); // 输入整数
// 清理输入缓冲区(防止意外字符)
if (fgets(people[i].name, sizeof(people[i].name), stdin)) {
char* endptr;
people[i].age = strtol(people[i].name + strlen(people[i].name) - 2, &endptr, 10); // 转换年龄
}
}
// 打印数组内容
for (i = 0; i < 5; i++) {
printf("姓名: %s, 年龄: %d\n", people[i].name, people[i].age);
}
return 0;
}
```
在这个例子中,for循环遍历数组,并提示用户输入每个元素的信息。记得处理可能的输入错误,例如清理输入缓冲区并确保年龄转换成功。
阅读全文