用c语言写一个手机通讯录系统
时间: 2024-10-09 17:09:12 浏览: 51
创建一个简单的手机通讯录系统,我们可以使用C语言的基本数据结构和文件操作来实现。以下是一个基础的示例,它包括添加联系人、查找联系人和删除联系人的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义联系人结构体
typedef struct {
char name[50];
char phone_number[20];
} Contact;
// 功能函数声明
void add_contact(Contact* contacts, int* size);
void search_contact(Contact* contacts, int size, const char* name);
void delete_contact(Contact* contacts, int* size, const char* name);
void display_contacts(Contact* contacts, int size);
int main() {
int size = 0;
Contact contacts[100]; // 初始化一个足够大的数组
// 添加联系人
while (true) {
printf("请输入姓名(输入'q'退出):");
fgets(contacts[size].name, sizeof(contacts[size].name), stdin);
if (!strcmp(contacts[size].name, "q\n")) break; // 检查是否输入了 'q'
printf("请输入电话号码:");
fgets(contacts[size].phone_number, sizeof(contacts[size].phone_number), stdin);
contacts[size].phone_number[strcspn(contacts[size].phone_number, "\n")] = '\0'; // 清除换行符
size++;
}
// 显示所有联系人
display_contacts(contacts, size);
return 0;
}
// 添加联系人到数组
void add_contact(Contact* contacts, int* size) {
*size += 1;
}
// 查找联系人
void search_contact(Contact* contacts, int size, const char* name) {
for (int i = 0; i < size; i++) {
if (strstr(contacts[i].name, name)) {
printf("找到联系人 - 姓名:%s, 电话:%s\n", contacts[i].name, contacts[i].phone_number);
}
}
}
// 删除联系人
void delete_contact(Contact* contacts, int* size, const char* name) {
// 这里只是一个基本的示例,实际应用需要遍历并更新其他联系人的位置
printf("此功能暂未实现。\n");
}
// 显示所有联系人
void display_contacts(Contact* contacts, int size) {
printf("\n当前联系人列表:\n");
for (int i = 0; i < size; i++) {
printf("姓名:%s, 电话:%s\n", contacts[i].name, contacts[i].phone_number);
}
}
```
注意:这个示例是非常简化的,并未处理错误情况,如输入验证和文件持久化等。在实际应用中,你可能会考虑将联系人存储在一个文件中,以便于保存和加载。
阅读全文