用c语言写一个具有增删查找功能的通讯录
时间: 2024-04-29 07:26:30 浏览: 13
好的,我明白了。关于您的问题,以下是一个简单的C代码示例,实现了添加、删除、查找通讯录条目的功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LENGTH 50
#define MAX_PHONE_NUM_LENGTH 20
typedef struct {
char name[MAX_NAME_LENGTH];
char phone_num[MAX_PHONE_NUM_LENGTH];
} Contact;
Contact* create_contact(char* name, char* phone_num) {
Contact* contact = malloc(sizeof(Contact));
strncpy(contact->name, name, MAX_NAME_LENGTH);
strncpy(contact->phone_num, phone_num, MAX_PHONE_NUM_LENGTH);
return contact;
}
typedef struct {
int num_contacts;
Contact** contacts;
} AddressBook;
AddressBook* create_address_book() {
AddressBook* address_book = malloc(sizeof(AddressBook));
address_book->num_contacts = 0;
address_book->contacts = malloc(sizeof(Contact*) * 100); // 数组大小暂定为100
return address_book;
}
void add_contact(AddressBook* address_book, Contact* contact) {
address_book->contacts[address_book->num_contacts++] = contact;
}
void delete_contact(AddressBook* address_book, int index) {
free(address_book->contacts[index]);
for (int i = index + 1; i < address_book->num_contacts; i++) {
address_book->contacts[i - 1] = address_book->contacts[i];
}
address_book->num_contacts--;
}
int find_contact(AddressBook* address_book, char* name) {
for (int i = 0; i < address_book->num_contacts; i++) {
if (strcmp(address_book->contacts[i]->name, name) == 0) {
return i;
}
}
return -1;
}
int main() {
AddressBook* address_book = create_address_book();
// 添加通讯录条目
add_contact(address_book, create_contact("Alice", "123-456-7890"));
add_contact(address_book, create_contact("Bob", "234-567-8901"));
// 查找通讯录条目
int index = find_contact(address_book, "Alice");
if (index != -1) {
printf("Alice's phone number: %s\n", address_book->contacts[index]->phone_num);
} else {
printf("Alice is not in the address book.\n");
}
// 删除通讯录条目
index = find_contact(address_book, "Bob");
if (index != -1) {
delete_contact(address_book, index);
}
// 释放内存
for (int i = 0; i < address_book->num_contacts; i++) {
free(address_book->contacts[i]);
}
free(address_book->contacts);
free(address_book);
return 0;
}
```
这段代码实现了简单的通讯录功能,可以添加、删除、查找通讯录条目。在代码中,`create_contact`函数用于创建一个通讯录条目,`create_address_book`函数用于创建一个空的通讯录,`add_contact`函数用于向通讯录中添加一个条目,`delete_contact`函数用于删除通讯录中的一个条目,`find_contact`函数用于查找通讯录中是否存在某个条目。注意,在使用完通讯录后,需要释放分配的内存以避免内存泄漏。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)