用线性表实现一个通讯录包含学号,姓名,电话号码,C语言
时间: 2024-10-15 19:19:08 浏览: 40
线性表通信录【c语言实现】.pdf
5星 · 资源好评率100%
在C语言中,我们可以使用结构体(struct)和动态内存分配(malloc)来实现一个简单的通讯录,每个通讯录条目存储学号、姓名和电话号码。以下是基本的实现步骤:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义通讯录条目的结构体
typedef struct {
char ID[10]; // 学号
char name[50]; // 姓名
char phone[15]; // 电话号码
} Contact;
// 动态创建通讯录条目
Contact* create_contact(char* id, char* name, char* phone) {
Contact* new_contact = (Contact*) malloc(sizeof(Contact));
strcpy(new_contact->ID, id);
strcpy(new_contact->name, name);
strcpy(new_contact->phone, phone);
return new_contact;
}
// 添加通讯录条目
void add_to_contacts(Contact** contacts_list, int* count, char* id, char* name, char* phone) {
Contact* new_entry = create_contact(id, name, phone);
*count += 1;
if (*count == 1) {
*contacts_list = new_entry;
} else {
Contact* last_entry = *contacts_list;
while (last_entry->next != NULL) {
last_entry = last_entry->next;
}
last_entry->next = new_entry;
}
}
// 打印通讯录
void print_contacts(Contact* contacts_list, int count) {
for (int i = 0; i < count; i++) {
printf("学号:%s,姓名:%s,电话:%s\n", contacts_list[i].ID, contacts_list[i].name, contacts_list[i].phone);
Contact* temp = contacts_list[i];
contacts_list[i] = contacts_list[i+1];
free(temp);
}
}
int main() {
Contact* contacts = NULL;
int count = 0;
// 示例:添加两个联系人
add_to_contacts(&contacts, &count, "001", "张三", "1234567890");
add_to_contacts(&contacts, &count, "002", "李四", "0987654321");
// 打印通讯录
print_contacts(contacts, count);
return 0;
}
```
阅读全文