【C语言基础】C语言实现动态通讯录的基本操作

AddressBook.h#pragma once#include#include//定义两个结构体#define NAME_SIZE 200#define PHONE_SIZE 200#define ADDR_SIZE 200typedef struct PersonInfo { char name[NAME_SIZE]; char phone[PHONE_S
摘要由CSDN通过智能技术生成

AddressBook.h

#pragma once

#include<stdio.h>
#include<stddef.h>

//定义两个结构体

#define NAME_SIZE 200
#define PHONE_SIZE 200
#define ADDR_SIZE 200

typedef struct PersonInfo {

	char name[NAME_SIZE];
	char phone[PHONE_SIZE];
	char addr[ADDR_SIZE];

}PersonInfo;

typedef struct AddrBook {

	PersonInfo* data;
	size_t size;
	size_t capacity;

}AddrBook;

#define DEFSULT_SZ 5

//初始化通讯录
void InitContact(AddrBook* addr);
//对通讯录进行扩容
void CheckCapacity(AddrBook* addr);
//在通讯录中增加条目
void AddContact(AddrBook* addr);

//通过姓名查找,如果有返回数组下标
int FindContactWithName(AddrBook* addr, char* name);
//通过电话号码查找,如果有就返回下标
int FindContactWithPhoneNumber(AddrBook* addr, char* phonenumber);

//删除通讯录中的联系人信息
void DeleteContact(AddrBook* addr);


//打印通讯录中所有联系人信息
void AddrBookDisplay(AddrBook* addr);

//打印单个联系人
void PrintSingleContact(AddrBook* addr, int index);

//按规则查找指定联系人
void AddrBookFind(AddrBook* addr);

//销毁通讯录
void AddrBookDestory(AddrBook* addr);

//修改通讯录中某个联系人的信息
void AddrBookModify(AddrBook* addr);


AddressBook.c

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"AddressBook.h"

void InitContact(AddrBook* addr) {

	if (addr == NULL) {
		return;
	}
	addr->size = 0;
	addr->data = (AddrBook*)malloc(DEFSULT_SZ *sizeof(AddrBook));
	if (addr->data == NULL) {
		printf("初始化失败!");
		return;
	}

	addr->capacity = DEFSULT_SZ;
}

void CheckCapacity(AddrBook* addr) {
	if (addr == NULL) {
		return;
	}
	//通讯录的大小已经等于容量了
	if (addr->size == addr-&
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值