正规英国365网址

转义字符的详细介绍(对初学者有帮助)

转义字符的详细介绍(对初学者有帮助)

目录

1.转义字符的简义

2.转义字符的种类

2.1 九个典型的转义字符

2.1.1 可打印类转义字符(1~4)

2.1.2 功能类转义字符(5~9)

2.2 两个关于数字的转义字符

2.2.1 作用(10~11)

2.2.2 字符 \0

3.转义字符的长度

3.1 strlen与转义字符长度

3.2 易错字符串长度的例子分析

1.转义字符的简义

顾名思义,转义字符是一种与原字符意义不相同的一种字符类型。

举个简单的例子:字母n是一个只是一个普通的字符,在字符串打印时自然会原封不动地被打印出来。但如果在n前面加上一个反斜杠 \ 组成字符 \n的话,那么字符串在打印的过程中都不会把 n 或 \n 打印出来,而是会在原本是n的地方实现换行功能。

下面用代码来解释:(左边是代码,右边是终端的结果)

字符n:

转义字符 \n:

2.转义字符的种类

转义字符有上百个,因为该篇文章是面向初学者的,我将选取最具代表性的11个转义字符,并详细讲解他们的用法以及它们的用途举例。

2.1 九个典型的转义字符

2.1.1 可打印类转义字符(1~4)

1. \' 用法:⽤于表⽰字符常量 ' 。

用途场景:当我们想把符号 ' 打印出来的时候,如果只是像下面这样处理的话会报错

错误的原因在于,系统不会认为中间的单引号 ' 是字符,在编译器中单引号 ' 和双引号 " 必须成对出现,否则就会报错。此时有3个 ' ,只能构成一对单引号,剩下一个 ' 不能配对,造成了编写错误“缺少右引号”。

那我们应该如何把 ' 打印出来呢?方法很简单,只需要用转义字符 \' 就能实现。如下

2. \" 用法:⽤于表⽰⼀个字符串内部的字符常量 " 。

用途场景:当我们想把符号 ' 打印出来的时候,如果只是像下面这样处理的话会报错

错误原因其实是和上面的单引号是一样的,我就不重复了,直接给出正确示范。

3. \? 作用:⽤于表⽰字符常量 ? ,在书写连续多个问号时使⽤,防⽌他们被解析成三字⺟词,在 新的编译器上已经没法验证了。

用途场景:这里给大家解释一下解析成三字母词是什么情况

假如我们要打印这句话“(are you ok??)”

如果这样写: printf("(are you ok??)");

在旧编译器中,??) 会组成三字母词从而变成 ] ,则结果为:(are you ok]。

所以要写成:printf("(are you ok\?\?)");

在新编译器中不会出现这样的错误。

4. \\ :⽤于表⽰⼀个反斜杠 \ ,防⽌它被解释为⼀个转义序列符。

用途场景:假如我们要打印一个文件路径:c:\number1\test

结果为:

错误的原因是 n、t 与 \ 结合成了转义字符 \n 、\t。

正确的做法是,使用转义字符 \\ :

2.1.2 功能类转义字符(5~9)

5. \a :警报,这会使得终端发出警报声或出现闪烁,或者两者同时发⽣。

在vs2020中,写出 printf("\a"); 后,按下f5键(或ctrl+f5)弹出终端时,会发出声音。

(有趣的小东西)

6. \b :退格键,光标回退⼀个字符,但不删除字符。

很多同学刚学到 \b 的时候,经常会以为它的作用是删除前一个字符,其实它真正的作 用是使光标回退一个字符。

如果 \b 后面还有字符,那么该字符会在回退后的光标处打印,并把 \b 前一个字符覆盖上,从而实现 “删除前一个字符” 的效果。(比如在 \b 后面加上空格)

代码演示:此时光标停在了 d 的前面

当 \b 后面还有字符,则会把 d 覆盖掉,实现删除 d 的效果

注意:光标后面的字符 会被 \b 后面的字符 一 一对应地替换掉,如果没有则保留。

代码演示:

此时光标在d处

在后面加上h i 的话,原本的cd 会被hi 覆盖;这4个字符没有被完全覆盖,所以还有字符被保留下来

为什么f被空格覆盖了? 因为这是一串字符串,而每个字符串后面都隐藏了一个转义字符\0,

字符\0把 f 覆盖了;但又因为 \0是无法打印出来的,所以是一个空格。

7. \t :制表符,光标移到下⼀个⽔平制表位,通常是下⼀个8的倍数(有的可能是4的倍数,这是编 译器决定的)。

8. \n :换⾏符。

【开头有演示,这里不再赘述】

9. \r :回⻋符,光标移到同⼀⾏的开头。

这里直接代码演示:光标来到了a这个位置,即该行的行头位置

与 \n 不同:如果我们把\r改成\n后,光标去到了下一行的位置

与 \b 相似:如果我们在 \r 后面加上其他字符,那么字符串会在行头处开始被覆盖

2.2 两个关于数字的转义字符

2.2.1 作用(10~11)

10. \ddd :d d d表⽰1~3个⼋进制的数字。

如:\130表⽰字符X :

注意:\ddd 最多是3位八进制数,因为ASCII码只有256个,如果八进制数ddd超过十进制数 255将会没有意义。而对于最小的4位八进制数1000是 8^3 = 512(大于255),所以不能 写成\dddd。

11. \xdd :d d表⽰2个⼗六进制数字。

如:\x40表⽰字符@ ​​​​:​​

注意:\xdd 最多是2位十六进制数,因为ASCII码只有256个,如果十六进制数xdd超过十进 制数255将会没有意义。而对于最小的3位十六进制数x100是 16^2 = 256(大于255), 所以不能写成\xddd。

2.2.2 字符 \0

字符\0 就是 转义字符\ddd类型 中的一种,它表示的是空字符或终止符,无法被打印出来。

'\0' == 0 ,字符\0的ASCII码值 等于 数值0。

而 '0' == 48 ,所以字符\0与字符0是不一样的。

3.转义字符的长度

3.1 strlen与转义字符长度

strlen的补充说明:

strlen()函数是用来计算字符串长度的函数,它的特点是从字符串中的第一个字符开始数,数到 \0 前一个字符结束。

这里给出结论:除了字符 \0 的长度是0,其他的转义字符长度都是1。

这里用上述11个转义字符举例:

结果:

关于数字的转义字符长度也是1:

结果:

值得注意的是,\0 与 \x0 是同一个东西,因为他们的十进制数都是0。

3.2 易错字符串长度的例子分析

学了这么多,出道蓝题考考你们,你们觉得 strlen("c:\test\abc\178\test.c") 有多长?

……

……

……

答案是17。 其中里面的转义字符有:\t \a \17 \t

为什么数字转义字符是\17而不是\178?(易错点)

因为此时是八进制转义字符,八进制中出现的数字不能大于等于8

你学会了吗?(^_^)(^_^)(^_^)

相关推荐

5种方法判断运动后多久可以安全喝水
正规英国365网址

5种方法判断运动后多久可以安全喝水

📅 2025-10-13 👁️ 7149
剑网3新号如何快速攒金(白嫖)攻略分享
36566666是哪个公司的电话

剑网3新号如何快速攒金(白嫖)攻略分享

📅 2025-07-11 👁️ 2262
中国十大栀子产地排行榜
365bet中国

中国十大栀子产地排行榜

📅 2025-07-01 👁️ 3574
学习软笔书法掌握这些握笔方法和姿势!
正规英国365网址

学习软笔书法掌握这些握笔方法和姿势!

📅 2025-08-20 👁️ 2715