【c语言】实现简朴的数据库

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX_ROWS 100
  5. #define MAX_NAME 50
  6. #define MAX_EMAIL 50
  7. typedef struct {
  8.     int id;
  9.     char name[MAX_NAME];
  10.     char email[MAX_EMAIL];
  11. } Row;
  12. typedef struct {
  13.     int size;
  14.     Row rows[MAX_ROWS];
  15. } Table;
  16. void init_table(Table *table) {
  17.     table->size = 0;
  18. }
  19. void insert_row(Table *table, int id, const char *name, const char *email) {
  20.     if (table->size < MAX_ROWS) {
  21.         Row *row = &table->rows[table->size];
  22.         row->id = id;
  23.         strncpy(row->name, name, MAX_NAME);
  24.         strncpy(row->email, email, MAX_EMAIL);
  25.         table->size++;
  26.     } else {
  27.         printf("Error: Table is full\n");
  28.     }
  29. }
  30. void print_table(Table *table) {
  31.     printf("ID\tName\tEmail\n");
  32.     for (int i = 0; i < table->size; i++) {
  33.         printf("%d\t%s\t%s\n", table->rows[i].id, table->rows[i].name, table->rows[i].email);
  34.     }
  35. }
  36. int main() {
  37.     Table table;
  38.     init_table(&table);
  39.     insert_row(&table, 1, "Alice", "alice@example.com");
  40.     insert_row(&table, 2, "Bob", "bob@example.com");
  41.     print_table(&table);
  42.     return 0;
  43. }
复制代码

  • 头文件引用:
    1. #include <stdio.h>#include <stdlib.h>#include <string.h>
    复制代码
    引用了三个标准C语言库头文件,分别是标准输入输出库(stdio.h)、标准库(stdlib.h)和字符串处置惩罚库(string.h)。
  • 宏定义:
    1. #define MAX_ROWS 100
    2. #define MAX_NAME 50
    3. #define MAX_EMAIL 50
    复制代码
    定义了三个常量,分别表示表格的最大行数、姓名的最大长度和电子邮件地址的最大长度。
  • 数据结构定义:
    1. typedef struct {
    2.     int id;
    3.     char name[MAX_NAME];
    4.     char email[MAX_EMAIL];
    5. } Row
    复制代码
    定义了一个表格行的结构体(Row),包含成员id、name和email。
    1. typedef struct {
    2.     int size;
    3.     Row rows[MAX_ROWS];
    4. } Table;
    复制代码
    定义了一个表格的结构体(Table),包含成员size和一个表格行数组rows。
  • 初始化表格函数:
    1. void init_table(Table *table) {
    2.     table->size = 0;
    3. }
    复制代码
    该函数用于初始化表格,将表格的大小(size)设置为0。
  • 插入行函数:
    1. void insert_row(Table *table, int id, const char *name, const char *email) {
    2.     if (table->size < MAX_ROWS) {
    3.         Row *row = &table->rows[table->size];
    4.         row->id = id;
    5.         strncpy(row->name, name, MAX_NAME);
    6.         strncpy(row->email, email, MAX_EMAIL);
    7.         table->size++;
    8.     } else {
    9.         printf("Error: Table is full\n");
    10.     }
    11. }
    复制代码
    该函数用于向表格中插入新的行,如果表格未满,将在表格的下一个位置插入新行,否则输出错误信息。
  • 打印表格函数:
    1. void print_table(Table *table) {
    2.     printf("ID\tName\tEmail\n");
    3.     for (int i = 0; i < table->size; i++) {
    4.         printf("%d\t%s\t%s\n", table->rows[i].id, table->rows[i].name, table->rows[i].email);
    5.     }
    6. }
    复制代码
    该函数用于打印整个表格的内容,按照格式输出表头和每一行的信息。
  • 主函数:
    1. int main() {
    2.     Table table;
    3.     init_table(&table);
    4.     insert_row(&table, 1, "Alice", "alice@example.com");
    5.     insert_row(&table, 2, "Bob", "bob@example.com");
    6.     print_table(&table);
    7.     return 0;
    8. }
    复制代码
    主函数创建一个Table范例的表格,并初始化。然后,通过insert_row函数向表格中插入两行数据,最后使用print_table函数打印整个表格的内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表