基于顺序存储结构的图书信息表C语言(不用C++)
时间: 2024-09-25 20:03:28 浏览: 40
在C语言中,基于顺序存储结构的图书信息表通常会使用数组或动态内存分配(如`malloc`和`calloc`) 来实现。这里我们假设每个图书的信息包括书名、作者和出版社等字段。
1. 定义结构体 (struct) 表示图书信息:
```c
typedef struct {
char book_title[100]; // 书名
char author[50]; // 作者
char publisher[50]; // 出版社
} BookInfo;
```
2. 创建动态数组用于存储书籍列表:
```c
BookInfo* books; // 动态数组指针,用于存储图书信息
int num_books = 0; // 当前书籍数量
// 分配内存
books = (BookInfo*) malloc(sizeof(BookInfo) * initial_capacity); // 初始容量可以根据需要设置
// 添加书籍
void add_book(char* title, char* author, char* publisher) {
if (num_books == capacity) {
// 如果已满,可以动态扩容
int new_capacity = capacity * 2;
BookInfo* new_books = (BookInfo*) realloc(books, sizeof(BookInfo) * new_capacity);
if (!new_books) { // 检查是否分配成功
perror("Memory allocation failed");
return;
}
books = new_books;
capacity = new_capacity;
}
books[num_books].book_title = title;
books[num_books].author = author;
books[num_books].publisher = publisher;
num_books++;
}
// 访问和操作书籍信息
void print_book_info(int index) {
printf("Book Title: %s\nAuthor: %s\nPublisher: %s\n", books[index].book_title, books[index].author, books[index].publisher);
}
```
阅读全文