栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C语言学习笔记第十二天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记第十二天

C语言学习笔记第十二天

目录
  • C语言学习笔记第十二天
    • 一、字符串相关操作函数:
    • 二、项目练习_通讯录系统

  • 一、字符串相关操作函数:

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、查找联系人,按照电话或者姓名,支持模糊查找(提示strstr函数可以支持字符串查找哦)
        5、显示所有联系人信息
        6、退出系统

个人代码如下(老师还没讲,可能有瑕疵):


#include 
#include 
#include 
#include 

//最大存储个数为50个
char name[50][20]={};
char sex[50]={};
char tel[50][12]={};

int cnt=0;			//联系人个数索引

void add(void)
{
	printf("请输入联系人姓名 性别 号码,中间用空格隔开:");
	int i=0;
	for(;i<50;i++)
	{
		if(sex[i]==0)
		{
			break;	
		}
	}
	if(i>49)
	{
		printf("50个人满了,联系程序员扩容");
		sleep(1);
		return;
	}
	scanf("%s %c %s",name[i],&sex[i],tel[i]);
	printf("添加成功……n");
	sleep(1);
	//printf("%s %c %s",name[cnt],sex[cnt],tel[cnt]);
}
void del(void)
{
	char n[20]={};
	printf("请输入你要删除的联系人姓名:");
	scanf("%s",n);
	int i=0;
	for(;i<50;i++)
	{
		if(sex[i] && strcmp(n,name[i])==0)
		{
			break;	
		}
	}
	if(i>=50)
	{
		printf("列表里没有这号人物……n");
		sleep(1);
		return;
	}else
	{
		printf("删除成功……n");
		sex[i]=0;	
		sleep(1);
	}
}

void change(void)
{
	printf("请输入需要修改的联系人姓名:");
	char n[20]={};
	scanf("%s",n);
	int i=0;
	for(;i<50;i++)
	{
		if(sex[i] && strcmp(n,name[i])==0)
		{
			break;	
		}
	}
	if(i>=50)
	{
		printf("列表里没有这号人物……");
		sleep(1);
		return;
	}else
	{
		printf("请输入修改后的姓名 性别(F/M) 电话号码:");
		scanf("%s %c %s",name[i],&sex[i],tel[i]);
		printf("修改成功……n");
		sleep(1);
	}

}

void find(void)
{
	printf("请输入需要查找的电话或者是姓名:");
	char s[20];
	scanf("%s",s);
	int i=0,f=1;
	for(;i<50;i++)
	{
		if(sex[i] && (strstr(name[i],s)!=NULL || strstr(tel[i],s)!=NULL))
		{
			f=0;
			printf("姓名:%stt性别:%ctt电话:%sn",name[i],sex[i],tel[i]);
		}
	}
	if(f)
	{
		printf("列表里没有这号人物……");
		sleep(1);
		return;
	}
	printf("查找结束……");
	sleep(5);
}

void show(void)
{
	for(int i=0;i<50;i++)
	{
		if(sex[i])
		{
			printf("姓名:%stt性别:%ctt电话:%sn",name[i],sex[i],tel[i]);
		}
	}
	sleep(5);
}
void show_interface(void)
{
	printf("1、增加n");		
	printf("2、删除n");		
	printf("3、修改n");		
	printf("4、查找n");		
	printf("5、显示信息n");		
	printf("0、退出n");
	printf("请输入你的选择:");
	
}

void (*fun[])(void)={
	add,
	del,
	change,
	find,
	show
};
int main(int argc,const char* argv[])
{
	int key=0;
	for(;;)
	{
		system("clear");
		show_interface();
		scanf("%d",&key);
		if(key>0 && key<6)
		{
			fun[key-1]();
		}else
		{
			break;	
		}
	}
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号