重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

(史上最细)C语言快速入门宝典(二)-创新互联

       🔥🔥 欢迎来到小林的博客!!
      🛰️博客主页:✈️小林爱敲代码
      🛰️专栏:✈️C语言快速入门
      🛰️欢迎关注:👍点赞🙌收藏✍️留言
在这里插入图片描述

      今天给大家分享C语言中字符串,转义字符,和选择语句这一块内容,让大家在学习的路上更加轻松。感谢大家对我的支持,祝大家学业有成,事业有成 !


  
      每日一句: 只有不断的努力,才能成为梦想中的自己!

公司专注于为企业提供成都网站设计、成都做网站、微信公众号开发、商城网站制作,成都小程序开发,软件按需规划网站等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务。

大纲:

在这里插入图片描述

目录
  • 💖4. 字符串、转义字符
    • 💖4.2 字符串定义
    • 💖4.2 字符串长度
    • 💖4.3 字符串大小
    • 💖4.4 转义字符
  • 🏀5.选择语句
    • 🏀5.2 if单分支
    • 🏀5.2 if双分支
    • 🏀5.3 if多分支
    • 🏀5.4 switch分支
  • 结言🥳:

💖4. 字符串、转义字符

"abcdefg"这种由双引号(Double Quote)引起来的一串字符称为字符串字面(String Literal),或者简称字符串字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

💖4.2 字符串定义

"char a[] = "abcde"这种方法,末尾会自动追加\0
"char a[] = {'a','b','c','d','e','\0'}这种方法,需要手动追加\0,否则字符串会没有结束标志。
"char a[20] = {'a','b','c','d','e'}这种方法,定义了长度为20,那么后面长度不足部分会自动补\0,所以也是可以的。

接下来我们试一下

#includeint main()
{char a[] = "abcde";
	char b[] = {'a','b','c','d','e','\0' };
	char c[20] = {'a','b','c','d','e' };

	printf("a = %s\n", a);
	printf("b = %s\n", b);
	printf("c = %s\n", c);

	return 0;
}

在这里插入图片描述

这些都是可以的,但是如果在没有限制的长度的情况下,b是一定要加\0的,否则字符串没有结束标志,会非法访问后面的内容。
在这里插入图片描述
字符串没有结束标志,就会访问随即内容。

💖4.2 字符串长度

字符串长度是从第一个字符开始,到\0停止,不包括\0。

char a[] = "abcde"; //从a开始,到e后一个\0结束,长度5
	char b[] = {'a','b','c','d','e','\0'};//从a开始,到\0结束,不包括\0,长度5
	char c[20] = {'a','b','c','d','e' };//一样,长度5

有一个strlen函数,可以获取一个字符串的长度,我们只需要引入string.h库,即可使用。

#include#includeint main()
{char a[] = "abcde";
	char b[] = {'a','b','c','d','e','\0'};
	char c[20] = {'a','b','c','d','e' };

	printf("lena = %d\n", strlen(a));
	printf("lenb = %d\n", strlen(b));
	printf("lenc = %d\n", strlen(c));


	return 0;
}

在这里插入图片描述
我们发现长度都是5,因为后面都有\0作为结束标志,但如果我们把b的\0去掉,那么 b的长度就变成了随机值。
在这里插入图片描述
所以字符串的长度是从第一个字符开始,到\0结束,其中不包括\0。

💖4.3 字符串大小

字符串的大小就是它开辟了多少空间,那么大小就是多少。如果定义时没有明确数组开辟多少空间,那么按数组元素个数计算大小。

char a[] = "abcde"; //包括\0 , 6个字节
	char b[] = {'a','b','c','d','e'}; //5个字节,元素个数
	char c[20] = {'a','b','c','d','e' };//有明确开辟20个空间大小,20字节

在这里插入图片描述
sizeof是一个关键字,会返回变量占用空间的大小。

💖4.4 转义字符
转义字符释义
\?(不常用)在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量’
\“用于表示一个字符内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格字符
\f进纸符
换行符
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdddd表示2个十六进制数字。 如: \x30 0

接下来演示几个转义字符。

#includeint main()
{printf("ABCD\b\n"); //退格+回车,输出ABC换行
	printf("ABCD\\\n ");// \加换行,输出ABCD\换行
	printf("%d\n",'\010'); //表示8进制的123,输出8回车
	printf("%d\n", '\x10');//16进制的ff,16回车

	return 0;
}

在这里插入图片描述

注意!所有的转义字符,它都只占一个字节。因为转义字符归根结底还是字符!字符占1个字节。


🏀5.选择语句

人无时无刻都在做选择,程序也需要做选择。当我们期望程序达到某个条件时,就做出不同的选择时。我们就需要选择语句,来控制程序走哪条路。

在这里插入图片描述

🏀5.2 if单分支

简单来说,单分支就是你要不要选择这条路。最终的终点是一样的,但中间会不会有小插曲,取决于你的选择。

假如你现在放学了,你可以直接回家。但你也可以选择先去网吧,再回家,而去网吧的这个过程就是你中间的选择。

但是你要去网吧,必须要有个条件,当满足了什么条件时,你才会选择去网吧。如果此时你身上有超过五块钱时,先去网吧,再回家。
在这里插入图片描述
所以我们可以用程序来模拟上面的过程。

#includeint main()
{int money = 6; //你身上的钱
	
	if (money >5) //如果你身上的钱超过5块
	{//去网吧
		printf("去网吧->");
	}

	//不管如何,你都要回家
	printf("回家");
	return 0;
}

此时我有6块钱,所以可以去网吧。
在这里插入图片描述
但如果我们把 money改成小于5呢? 钱不够了,那就不能去网吧了。只能直接回家了。
在这里插入图片描述

🏀5.2 if双分支

那么这时候问题来了,你钱不够,去不了网吧。又不想马上回家,必须要买点东西弥补一下去不了网吧的遗憾。这时就可以用双分支。

在这里插入图片描述
因为你不想立刻回家,必须做点事情才回家,那么就没有直接回家这条选项了。

用程序模拟

#includeint main()
{int money = 4; //你身上的钱
	
	if (money >5) //如果你身上的钱超过5块
	{//去网吧
		printf("去网吧->");
	}
	else //钱不够,就跳到这来
	{printf("去买棒棒糖->");
	}

	//不管如何,你都要回家
	printf("回家");
	return 0;
}

当你只有4块钱时
在这里插入图片描述
当你有6块钱时
在这里插入图片描述

🏀5.3 if多分支

那么这时候你又有要求了。 如果身上的钱超过20块,就去游泳,如果不超过20块钱,但是超过10块钱,就去吃肯德基。如果不超过10块钱,但是超过5块钱,就去网吧。五块钱都没有,那就只能吃棒棒糖了。最后再回家。
在这里插入图片描述
那么我们就else if

#includeint main()
{int money = 6; //你身上的钱
	
	if (money >20) //如果你身上的钱超过20块
	{//去游泳
		printf("去游泳->");
	}
	else if(money >10)//钱不够20,但是超过10块
	{printf("去吃肯德基->");
	}
	else if (money >5)//钱不够10块,但是超过5块
	{printf("去网吧->");
	}
	else 
	{printf("去买棒棒糖->"); //五块钱都没有
	}

	//不管如何,你都要回家
	printf("回家");
	return 0;
}

21块钱的结果
在这里插入图片描述

11块钱的结果
在这里插入图片描述

6块钱的结果
在这里插入图片描述

4块钱的结果
在这里插入图片描述

🏀5.4 switch分支

switch 分支也是多分支,跟 if else的功能是一样的。只不过在某种特定情况,用switch分支会比 if else分支更加直观,更加方便。

假设 你想制定一个计划表,从周一到周日。每一天都做不同的事情。这种情况用 if else会显得很杂乱,代码可读性并不是很好。

if else的写法

#includeint main()
{int weekday = 1; //星期数

	if (weekday == 1)
	{printf("跑步");
	}
	else if (weekday == 2)
	{printf("爬山");
	}
	else if (weekday == 3)
	{printf("游泳");
	}
	else if (weekday == 4)
	{printf("打游戏");
	}
	else if (weekday == 5)
	{printf("打篮球");
	}
	else if (weekday == 6)
	{printf("踢足球");
	}
	else if (weekday == 7)
	{printf("写作业");
	}

	return 0;
}

这种频繁的 if else ,看的让人眼花缭乱。 所以在这里推荐用switch分支!!

switch分支的写法

#includeint main()
{int weekday = 1; //星期数

	switch (weekday)//weekday是要匹配的值
	{//如果weekday = 1,那么会走这条语句的内容
	case 1: printf("跑步"); 
		break;

		//如果weekday = 2,那么会走这条语句的内容
	case 2: printf("爬山");
		break;

		//如果weekday = 3,那么会走这条语句的内容
	case 3: printf("游泳");
		break;

		//如果weekday = 4,那么会走这条语句的内容
	case 4: printf("打游戏");
		break;

		//如果weekday = 5,那么会走这条语句的内容
	case 5: printf("打篮球");
		break;

		//如果weekday = 6,那么会走这条语句的内容
	case 6: printf("踢足球");
		break;

		//如果weekday = 7,那么会走这条语句的内容
	case 7: printf("写作业");
		break;

		//如果上面都不满足,那么会执行这一条
	default:
		printf("星期数不存在");
		break;
	}

	return 0;
}

在这里插入图片描述

注意!每条case分支必须要加上break语句,否则会接着执行下一条语句。假设我把case1,和case2的break删掉。
在这里插入图片描述
我们会发现它会接着往下执行,直到遇到break才结束。


结言🥳:

💦💦如果有写的有什么不好的地方,希望大家指证出来,我会不断的改正自己的错误。💯💯如果感觉写的还可以,可以点赞三连一波哦~🍸🍸后续会持续为大家更新大纲上的内容,以及数据结构,C++等方面的知识

🔥🔥你们的支持是我大的动力,希望在往后的日子里,我们大家一起进步!!!
🔥🔥

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:(史上最细)C语言快速入门宝典(二)-创新互联
文章分享:http://cqcxhl.cn/article/ijpps.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP