实现一个通讯录
1.可以存放100个人的信息
2.每个人的信息:名字,性别,年龄,电话,地址
3.增加联系人
4.删除指定联系人
5.查找指定联系人
6.修改指定联系人
7.显示联系人信息
8.排序联系人(按照年龄/名字)
我们创建三个项目
test.c :测试通讯录的相关功能
contact.h :声明
contact.c :通讯录的实现模块
菜单
通讯录人的信息
在test.h和contact.h 里面都要用的,所以把他定义在contact.h中
在项目中的有很多数字,这些数字如果在后期要改不好一个一个改,所以可以直接先定义几个数字
初始化通讯录
然后头文件中声明
最后在contact.c中实现
增加联系人
在头文件中声明
在contact.c中实现
显示通讯录人的信息
在头文件中声明
在contact.h中实现
删除联系人
在头文件中声明
在contact .c中实现
把查找联系人封装成一个函数,后面也可以用
查找指定联系人
在头文件中声明
在c中实现
修改通讯录
声明
实现
排序
声明
实现
结尾
新函数
memset
memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。
void *memset(void *s, int c, size_t n);
- s指向要填充的内存块。
- c是要被设置的值。
- n是要被设置该值的字符数。
- 返回类型是一个指向存储区s的指针。
qsort
void qsort(void* base (这是我们要排序的数组), size_t num(数组里面有多少个元素), size_t size(每个元素大小,单位为字节), int(*compare)(const void* , const void*)(一个函数名))
void (比较的数组是什么类型这里就写什么类型 compare(const void* e1, const void* e2)
{
void*(这里比较的数组是什么类型就写什么类型) pe1 =(int*)e1;
void*(这里比较的数组是什么类型就写什么类型) pe2 =(int*)e2;
int mun1=*pe1;
int mun2=*pe2;
return num1-num2;
}
这里是从小到大开始排,如果要从小到大开始排只需要把num1和num2倒过来
比如