【转义字符】【干货满满】超详细讲解+代码图解!

 

转义字符,顾名思义,首先,它是一个字符,其次它的意义转变了,但它还是一个字符。

在C语言中,字符是与ascii表格一一对应的,字符有两种表示方式,一种是用它的实体(也就是真正的字符,例如'A')表示,也可以用单引号内用反斜线加上ascil码值(如'\130''---->'X' )表示,这种使用编码值来间接地表示字符的方式称为转义字符。

转义字符以\或者\x开头,以\开头表示后跟八进制形式的编码值,以\x开头表示后跟十六进制形式的编码值。对于转义字符来说,只能使用八进制或者十六进制。这两种转移字符其代表着一个字节大小的整数值字符

\dddddd表示1~3个八进制的数字。如\130---->  'X'
\xdddd表示两个十六进制数字。    如\x30 ---> '0'

同学们可以试着printf一下"\x48\x45\x4C\x4C\x4F\x20\x57\x4F\x52\x4C\x44\x0A"看看是什么.

 


字符 1、2、3、a、b、c 对应的 ASCII 码的八进制形式分别是 61、62、63、141、142、143,十六进制形式分别是 31、32、33、61、62、63。

下面的例子演示了转义字符的用法:

      转义字符的初衷是用于 ASCII 编码,所以它的取值范围有限

  • 八进制形式的转义字符最多后跟三个数字,也即\ddd,最大取值是\177-->(127(十进制))
  • 十六进制形式的转义字符最多后跟两个数字,也即\xdd,最大取值是\x7f-->(127(十进制))


超出范围的转义字符的行为是未定义的,有的编译器会将编码值直接输出,有的编译器会报错。(附一张ascii表)


但是这样写有些麻烦,你不能一边看ascii码表,一边写代码,所以说用它实体像'A'这样更加简单容易,但是呢这样并不能解决所有问题,ascii码中那些控制字符(非打印字符)它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,就没法使用这种直接输入的方法,只能用\ddd或者\xdd方式打印,但我们知道这样写很麻烦,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,比如我们用了一些帮助记忆的符号来代替数字,比如用n来代替十六进制数字'A','\x0A'就可以写成'\n'了。完整列表如图。


转义字符释义ASCIL码值
\"双引号034
\'单引号039
\\反斜杠(一个092
\n换行(LF) ,将当前位置移到下一行开头010
\f换页(FF),将当前位置移到下页开头012
\b退格(BS) ,将当前位置移到前一列008
\a响铃(BEL)007
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) 009
\v垂直制表(VT)011

 

来几个代码感受下:上菜~~~~

1.

字符串长度可不要算错哟!\32是一个字符

2.

  • 单引号是字符类型的开头和结尾,要使用\'表示,也即'\''
  • 双引号是字符串的开头和结尾,要使用\"表示,也即"abc\"123"
  • 反斜杠是转义字符的开头,要使用\\表示,也即'\\',或者"abc\\123"

3.用\把\给转义掉就能打印出我们想要的值啦

亲爱滴同志们学废了嘛~~~

~~~

吹灭读书灯,一身都是月。

明天也要加油呀。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值