这个程序使用了结构体来存储联系人的信息,包括名字和电话号码。然后,使用数组来存储所有的联系人信息。查找功能通过名字进行,显示功能则显示所有联系人的信息。

这是一个基本的电话簿程序,你可以在此基础上进行扩展和改进。
#include <stdio.h>
#include <string.h>
#define MAX_CONTACTS 100 // 最大联系人数量
#define NAME_LENGTH 50 // 名字的最大长度
#define PHONE_NUMBER_LENGTH 20 // 电话号码的最大长度
// 定义联系人结构体
struct Contact {
char name[NAME_LENGTH];
char phoneNumber[PHONE_NUMBER_LENGTH];
};
// 添加联系人
void addContact(struct Contact contacts[], int *numContacts, char name[], char phone[]) {
strcpy(contacts[*numContacts].name, name);
strcpy(contacts[*numContacts].phoneNumber, phone);
(*numContacts)++;
}
// 查找联系人
int findContact(struct Contact contacts[], int numContacts, char name[]) {
for (int i = 0; i < numContacts; i++) {
if (strcmp(contacts[i].name, name) == 0) { // 如果找到匹配的名字,返回索引
return i;
}
}
return -1; // 如果没找到,返回-1
}
// 显示所有联系人信息
void displayContacts(struct Contact contacts[], int numContacts) {
printf("NamettPhone Numbern"); // 表头
for (int i = 0; i < numContacts; i++) { // 显示每个联系人的信息
printf("%stt%sn", contacts[i].name, contacts[i].phoneNumber);
}
}
int main() {
struct Contact contacts[MAX_CONTACTS]; // 创建联系人数组
int numContacts = 0; // 当前的联系人数量
char choice; // 用户的选择(用于菜单)
char name[NAME_LENGTH]; // 存储输入的名字
char phone[PHONE_NUMBER_LENGTH]; // 存储输入的电话号码
int contactIndex = -1; // 存储查找联系人的索引(-1表示未找到)
while (1) { // 主循环,持续运行直到用户选择退出程序(输入’q’)
printf("nPhone Bookn"); // 输出标题栏
printf("Enter ’a’ to add contactn"); // 提示用户输入添加联系人的选项(’a’)以添加联系人信息到电话簿中,输入格式:姓名 电话号,n");
printf("Enter ’f’ to find contactn"); // 提示用户输入查找联系人的选项(’f’)以查找联系人信息,n");
printf("Enter ’d’ to display all contactsn"); // 提示用户输入显示所有联系人的选项(’d’)以显示所有联系人信息,n");
printf("Enter ’q’ to quitn"); // 提示用户输入退出程序的选项(’q’),n");
printf("Enter your choice: "); // 提示用户输入选择项并获取输入值存储在choice变量中。"); 扫描用户的选择并决定下一步的操作,n"); 扫描用户的选择并决定下一步的操作,n"); 扫描用户的选择并决定下一步的操作,n"); 扫描用户的选择并决定下一步的操作:"); 扫描用户的选择: "); scanf("%c", &choice); // 获取用户的选择项并存储在choice变量中。"); switch语句用于根据用户的选择执行相应的操作,n"); switch (choice) { case ’a’: printf("Enter contact name: "); scanf("%s", name); printf("Enter phone number: "); scanf("%s", phone); addContact(contacts, &numContacts, name, phone); printf("Contact added successfully.n"); break; case ’f’: printf("Enter contact name to find: "); scanf("%s", name); contactIndex = findContact(contacts, numContacts, name); if (contactIndex == -1) { printf("Contact not found.n"); } else { printf("Contact found at index %d.n", contactIndex); } break; case ’d’: displayContacts(contacts, numContacts); break; case ’q’: printf("Exiting program...n"); return 0; default: printf("Invalid choice. Please enter a valid option.n"); } }




