通讯录怎么编程

时间:2025-01-25 09:48:37 网络游戏

通讯录的编程可以通过以下步骤实现:

定义数据结构

确定用来存储联系人信息的数据结构,一般会包含姓名、电话号码等基本信息。可以使用结构体来定义联系人信息,例如:

```c

typedef struct Contact {

char name;

char phone;

} Contact;

```

初始化通讯录

为通讯录分配内存空间,设定初始的联系人数量等相关属性。例如:

```c

typedef struct AddressBook {

Contact *contacts; // 指向联系人数组的指针

int size; // 当前联系人数量

int capacity; // 通讯录容量

} AddressBook;

AddressBook initAddressBook(int capacity) {

AddressBook book;

book.contacts = (Contact *)malloc(capacity * sizeof(Contact));

book.size = 0;

book.capacity = capacity;

return book;

}

```

实现功能

添加联系人:接收用户输入的联系人信息,将其存入通讯录的数据结构中。例如:

```c

void addContact(AddressBook *book, const char *name, const char *phone) {

if (book->size >= book->capacity) {

// 扩展通讯录容量

book->capacity *= 2;

book->contacts = (Contact *)realloc(book->contacts, book->capacity * sizeof(Contact));

}

strcpy(book->contacts[book->size].name, name);

strcpy(book->contacts[book->size].phone, phone);

book->size++;

}

```

显示联系人:遍历通讯录中的联系人数据,将每个联系人的信息输出显示。例如:

```c

void displayContacts(const AddressBook *book) {

for (int i = 0; i < book->size; i++) {

printf("Name: %s, Phone: %s\n", book->contacts[i].name, book->contacts[i].phone);

}

}

```

查找联系人:根据用户输入的关键信息(比如姓名),在通讯录中查找匹配的联系人并显示其详细信息。例如:

```c

int findContact(const AddressBook *book, const char *name) {

for (int i = 0; i < book->size; i++) {

if (strcmp(book->contacts[i].name, name) == 0) {

return i;

}

}

return -1; // 未找到

}

```

释放资源

在程序结束前,释放通讯录占用的内存空间。例如:

```c

void freeAddressBook(AddressBook *book) {

free(book->contacts);

}

```

示例代码