字符串相关操作函数:
int atoi(const char *nptr);
功能: 字符串转int类型
long atol(const char *nptr);
功能: 字符串转long类型
long long atoll(const char *nptr);
功能: 字符串转long long类型
double atof(const char *nptr);
功能: 字符串转double类型
char *strstr(const char *haystack,const char *needle);
功能: 在haystack中查找是否存在子串needle
返回值: needle在haystack中首次出现的位置,如果找不到则返回NULL
int sprintf(char *str,const char *format,……);
功能: 把各种类型的数据输出给字符串str
返回值: 转换后字符个数
int sscanf(const char *str,const char *format,……);
功能: 从str中解析读取数据到变量中
返回值:成功解析出来的变量个数
void *memcpy(void *dest,const void *src,size_t n);
功能: 从src位置拷贝n个字节到dest的位置
返回值:链式调用
int memcmp(const void *s1,const void *s2,size_t n);
功能: 比较两块内存的值,按照字节比较,一旦比较出结果后面不再比较
返回值: s1 == s2 0
s1 < s2 负数
s1 > s2 正数
小项目:通讯录系统
要求:存储联系人信息:
姓名、性别、电话
最大存储量50人
功能要求:
1、增加联系人
2、按名字删除联系人
3、按名字修改联系人信息
4、查找联系人(按照电话或者姓名查找,支持模糊查找)
5、显示所有联系人信息
6、退出系统
// 头文件,变量声明,函数声明
#include <stdio.h>
#include <stdlib.h>
#include <getch.h>
#include <string.h>
char Name[50][20]={};
char Tel[50][12]={};
char Gender[50][4]={};
void display_menu(void);
void add_contacts(void);
void delete_contacts(void);
void modify_contacts(void);
void lookup_contacts(void);
void display_contacts(void);
//主函数
int main(int argc,const char* argv[])
{
for(;;)
{
system("clear"); //清屏
display_menu();
switch(getch()) //获取键值
{
case 49:
add_contacts();
break;
case 50:
delete_contacts();
break;
case 51:
modify_contacts();
break;
case 52:
lookup_contacts();
break;
case 53:
display_contacts();
break;
case 54:
return 0;
}
}
}
//打印菜单
void display_menu(void)
{
printf("*********************************\n");
printf("* 根据按钮提示选择! *\n");
printf("* 按键1:增加联系人! *\n");
printf("* 按键2:删除联系人! *\n");
printf("* 按键3:修改联系人信息! *\n");
printf("* 按键4:查找联系人! *\n");
printf("* 按键5:显示所有联系人信息! *\n");
printf("* 按键6:退出系统! *\n");
printf("*********************************\n");
}
//添加联系人函数
void add_contacts(void)
{
int i=0;
printf("请输入联系人的信息(姓名 性别 电话):");
for(i=0;i<50;i++)
{
if('\0' == *Name[i])
{
scanf("%s",Name[i]);
scanf("%s",Gender[i]);
scanf("%s",Tel[i]);
break;
}
}
if(50 == i)
{
printf("联系人已满!");
}
}
//删除联系人函数
void delete_contacts(void)
{
char name[20]={};
printf("请输入要删除的联系人姓名:");
scanf("%s",name);
for(int i=0;i<50;i++)
{
if(*Name[i] == name[0])
{
*Name[i] = 0;
break;
}
}
}
//修改联系人函数
void modify_contacts(void)
{
char name[20]={};
printf("请输入要修改的联系人姓名:");
scanf("%s",name);
for(int i=0;i<50;i++)
{
if(*Name[i] == name[0])
{
printf("请输入修改后联系人的信息(姓名 性别 电话):");
scanf("%s",Name[i]);
scanf("%s",Gender[i]);
scanf("%s",Tel[i]);
break;
}
}
}
//查找联系人函数
void lookup_contacts(void)
{
char arr[20]={};
printf("请输入要查找的关键字:");
scanf("%s",arr);
for(int i=0;i<50;i++)
{
if(NULL != strstr(Name[i],arr) || NULL != strstr(Tel[i],arr))
{
printf("%s %s %s\n",Name[i],Gender[i],Tel[i]);
}
}
printf("-------------------\n");
printf("任意键返回菜单!");
getch();
getch();
}
//显示所有联系人函数
void display_contacts(void)
{
for(int i=0;i<50;i++)
{
if('\0' == *Name[i])
{
continue;
}
printf("%s\t%s %s\n",Name[i],Gender[i],Tel[i]);
}
printf("------------------------\n");
printf("任意键返回菜单!");
getch();
}