用数据结构,c语言写一个简易的通讯录
时间: 2024-05-03 11:20:36 浏览: 23
好的,我可以回答这个问题。为了实现一个简易通讯录,我们可以使用结构体来表示每个联系人的信息。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define MAX_PHONE_LEN 15
#define MAX_EMAIL_LEN 50
typedef struct _contact {
char name[MAX_NAME_LEN];
char phone[MAX_PHONE_LEN];
char email[MAX_EMAIL_LEN];
} contact;
int main()
{
int n = 0; // 联系人个数
int capacity = 10; // 容量
contact *contacts = malloc(capacity * sizeof(contact)); // 分配10个联系人的空间
// 添加联系人
char action;
do {
printf("请输入要执行的操作(A添加联系人,Q退出):");
scanf(" %c", &action);
if (action == 'A' || action == 'a') {
if (n == capacity) { // 如果联系人数组已满,就重新分配空间(每次扩容10个联系人)
capacity += 10;
contacts = realloc(contacts, capacity * sizeof(contact));
}
contact *new_contact = &contacts[n++]; // 新的联系人放在数组末尾
printf("请输入名字:");
scanf("%s", new_contact->name);
printf("请输入电话:");
scanf("%s", new_contact->phone);
printf("请输入邮箱:");
scanf("%s", new_contact->email);
}
} while (action != 'Q' && action != 'q');
// 打印所有联系人
printf("所有联系人:\n");
for (int i = 0; i < n; i++) {
printf("%s\t%s\t%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
}
free(contacts); // 释放内存
return 0;
}
```
这个程序使用结构体来表示每个联系人的信息,使用动态数组来存储联系人。当用户输入字母'A'时,程序提示用户输入姓名、电话和邮箱,并将新联系人添加到动态数组中。当动态数组空间不足时,程序会在每次扩容10个联系人。用户输入字母'Q'时,程序退出并释放动态数组的内存。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)