用C语音写一个通讯录功能
时间: 2024-09-28 11:05:09 浏览: 26
在C语言中编写一个简单的通讯录功能,通常会涉及到结构体、数组或链表来存储联系人信息,以及一些基本的操作函数如添加、删除、查找等。这里是一个基础的示例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个结构体表示联系人
typedef struct {
char name[50];
char phone_number[20];
} Contact;
// 初始化空的通讯录
Contact* initAddressBook() {
return (Contact*)malloc(sizeof(Contact));
}
// 添加联系人到通讯录
void addContact(Contact* book, char* name, char* phone) {
Contact* new_contact = (Contact*)malloc(sizeof(Contact));
strcpy(new_contact->name, name);
strcpy(new_contact->phone_number, phone);
if (book == NULL) {
book = new_contact;
} else {
Contact* current = book;
while (current->next != NULL) {
current = current->next;
}
current->next = new_contact;
}
}
// 查找联系人
Contact* findContact(Contact* book, char* name) {
Contact* current = book;
while (current != NULL) {
if (strcmp(current->name, name) == 0) {
return current;
}
current = current->next;
}
return NULL;
}
// 删除联系人(仅提供简单示例,实际操作可能需要考虑释放内存)
void deleteContact(Contact** book, char* name) {
Contact* previous = book;
Contact* current = *book;
while (current != NULL && strcmp(current->name, name) != 0) {
previous = current;
current = current->next;
}
if (current != NULL) {
previous->next = current->next;
free(current);
}
}
int main() {
// 示例使用
Contact* address_book = initAddressBook();
addContact(address_book, "Alice", "12345678");
addContact(address_book, "Bob", "98765432");
// 查找并打印联系人
Contact* found = findContact(address_book, "Alice");
if (found) {
printf("Found contact for %s: %s\n", found->name, found->phone_number);
} else {
printf("Contact not found.\n");
}
// 删除联系人
deleteContact(&address_book, "Bob");
// 其他操作...
return 0;
}
```
这个示例非常基础,实际应用中可能会加入错误处理、动态扩容、用户界面等功能。同时,由于C语言的标准库并不支持直接读写文件操作,所以保存和加载联系人数据通常会使用文件I/O。