在C语言中,数组是一种基础且重要的数据结构,用于存储相同类型的多个元素,当需要将用户输入的数据(如数据库记录)保存到数组中时,需要结合数组的定义、输入方法、数据存储逻辑以及动态扩容等技巧来实现,以下将详细说明如何使用C语言数组保存输入的数据库数据,涵盖静态数组、动态数组、结构体数组等场景,并提供具体代码示例和注意事项。
使用静态数组保存固定大小的数据库记录
静态数组在声明时需要指定固定大小,适用于数据量已知且不会变化的场景,假设要保存学生的学号和姓名,可以定义一个结构体数组,并通过循环接收用户输入。
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最大学生数量
struct Student {
int id; // 学号
char name[50]; // 姓名
};
int main() {
struct Student students[MAX_STUDENTS]; // 静态结构体数组
int count = 0; // 实际存储的学生数量
printf("请输入学生数量(最多%d人):", MAX_STUDENTS);
scanf("%d", &count);
getchar(); // 清除输入缓冲区中的换行符
for (int i = 0; i < count; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &students[i].id);
getchar(); // 清除换行符
printf("请输入第%d个学生的姓名:", i + 1);
fgets(students[i].name, sizeof(students[i].name), stdin);
students[i].name[strcspn(students[i].name, "n")] = '