怎么用C语言写一个简单的通讯录系统
时间: 2023-08-16 08:06:28 浏览: 79
下面是一个简单的通讯录系统的 C 语言代码示例,包含添加联系人、查找联系人和显示所有联系人等功能:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 30
#define MAX_PHONE_LENGTH 15
#define MAX_ADDRESS_LENGTH 50
#define MAX_CONTACTS 100
struct Contact {
char name[MAX_NAME_LENGTH];
char phone[MAX_PHONE_LENGTH];
char address[MAX_ADDRESS_LENGTH];
};
struct Contact contacts[MAX_CONTACTS];
int num_contacts = 0;
void addContact() {
if (num_contacts >= MAX_CONTACTS) {
printf("Error: Maximum number of contacts reached!\n");
return;
}
struct Contact newContact;
printf("Enter name: ");
scanf("%s", newContact.name);
printf("Enter phone: ");
scanf("%s", newContact.phone);
printf("Enter address: ");
scanf("%s", newContact.address);
contacts[num_contacts++] = newContact;
}
void searchContact() {
char name[MAX_NAME_LENGTH];
printf("Enter name to search for: ");
scanf("%s", name);
int found = 0;
for (int i = 0; i < num_contacts; i++) {
if (strcmp(name, contacts[i].name) == 0) {
printf("Name: %s\nPhone: %s\nAddress: %s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
found = 1;
break;
}
}
if (!found) {
printf("Contact not found!\n");
}
}
void listContacts() {
for (int i = 0; i < num_contacts; i++) {
printf("Name: %s\nPhone: %s\nAddress: %s\n", contacts[i].name, contacts[i].phone, contacts[i].address);
printf("---------------\n");
}
}
int main() {
int choice;
do {
printf("Menu:\n");
printf("1. Add contact\n");
printf("2. Search contact\n");
printf("3. List all contacts\n");
printf("4. Quit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addContact();
break;
case 2:
searchContact();
break;
case 3:
listContacts();
break;
case 4:
printf("Goodbye!\n");
break;
default:
printf("Invalid choice!\n");
break;
}
} while (choice != 4);
return 0;
}
```
该代码定义了通讯录结构体 `Contact`,包含姓名、电话和地址等属性。在 `main` 函数中,通过循环显示菜单,让用户选择要执行的操作。用户可以添加联系人、查找联系人和显示所有联系人等。在添加联系人时,会提示用户输入一个新的联系人的姓名、电话和地址,并将其添加到 `contacts` 数组中。在查找联系人时,会提示用户输入要查找的联系人姓名,并在 `contacts` 数组中查找并打印出该联系人的详细信息。在显示所有联系人时,会遍历 `contacts` 数组并打印出每个联系人的详细信息。
请注意,该代码只是一个简单的示例,实际应用中可能需要更复杂的数据结构和算法来处理通讯录。