用c语言编写一个通讯录
时间: 2023-05-14 17:03:42 浏览: 107
【免费阅读】c语言编写通讯录.doc
通讯录是记录联系人信息的常用工具,我们可以使用C语言编写一个简单的通讯录程序。程序可以实现以下基本功能:
1. 添加联系人:当用户输入联系人姓名、电话号码、地址等信息时,程序将其保存到通讯录中。
2. 查找联系人:根据联系人姓名或电话号码进行查找,程序将返回相应的联系人信息。
3. 修改联系人:用户可以输入需要修改的联系人姓名或电话号码,程序将找到该联系人并允许用户修改其信息。
4. 删除联系人:用户可以输入需要删除的联系人姓名或电话号码,程序将找到该联系人并将其从通讯录中删除。
我们可以使用结构体来表示一个联系人,例如:
```
struct contact {
char name[50];
char phone[20];
char address[100];
};
```
将多个联系人保存到数组中,并根据用户的输入实现相应的操作即可。下面是一个简单的实现:
```
#include <stdio.h>
#include <string.h>
struct contact {
char name[50];
char phone[20];
char address[100];
};
void add_contact(struct contact contacts[], int *count) {
struct contact new_contact;
printf("请输入姓名:");
scanf("%s", new_contact.name);
printf("请输入电话:");
scanf("%s", new_contact.phone);
printf("请输入地址:");
scanf("%s", new_contact.address);
contacts[*count] = new_contact;
(*count)++;
printf("添加成功!\n");
}
void find_contact(struct contact contacts[], int count) {
char keyword[50];
printf("请输入姓名或电话号码:");
scanf("%s", keyword);
for (int i = 0; i < count; i++) {
if (strcmp(keyword, contacts[i].name) == 0 || strcmp(keyword, contacts[i].phone) == 0) {
printf("姓名:%s\n电话:%s\n地址:%s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
return;
}
}
printf("未找到匹配的联系人!\n");
}
void modify_contact(struct contact contacts[], int count) {
char keyword[50];
printf("请输入需要修改的姓名或电话号码:");
scanf("%s", keyword);
for (int i = 0; i < count; i++) {
if (strcmp(keyword, contacts[i].name) == 0 || strcmp(keyword, contacts[i].phone) == 0) {
printf("请输入新的姓名:");
scanf("%s", contacts[i].name);
printf("请输入新的电话:");
scanf("%s", contacts[i].phone);
printf("请输入新的地址:");
scanf("%s", contacts[i].address);
printf("修改成功!\n");
return;
}
}
printf("未找到匹配的联系人!\n");
}
void delete_contact(struct contact contacts[], int *count) {
char keyword[50];
printf("请输入需要删除的姓名或电话号码:");
scanf("%s", keyword);
for (int i = 0; i < *count; i++) {
if (strcmp(keyword, contacts[i].name) == 0 || strcmp(keyword, contacts[i].phone) == 0) {
for (int j = i; j < *count - 1; j++) {
contacts[j] = contacts[j+1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到匹配的联系人!\n");
}
int main() {
struct contact contacts[100];
int count = 0;
int choice;
while (1) {
printf("请选择操作:\n1. 添加联系人\n2. 查找联系人\n3. 修改联系人\n4. 删除联系人\n5. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_contact(contacts, &count);
break;
case 2:
find_contact(contacts, count);
break;
case 3:
modify_contact(contacts, count);
break;
case 4:
delete_contact(contacts, &count);
break;
case 5:
return 0;
default:
printf("无效的选择!\n");
}
}
}
```
这个程序还有很多不足之处,例如输入格式验证、数据持久化等问题,但可以作为一个简单的起点,有兴趣的读者可以尝试进行改进和扩展。
阅读全文