C语言-转义字符

1.定义

转变原来字符的意思,叫做转义字符

2.转义字符

转义字符 : '\字母'

1.\n : 换行

结果:faeg换行

2.\0 : 空字符

常被系统自动加在每个字符串的尾部,作为字符串的结束标志,占用一个字节的内存空间 (打印到\0结束,后面的不会打印)

结果:faeg未打印

3.\t : 水平制表符

即横向跳格,跳到下一制表位,可把每8个字符看作一个水平制表符,即\t前面字符还差几个满8个字符就空几个字符的位置

结果:sd后空出了六个字符才继续打印

4.\b : 退格

vs2022为向左删除一格(博主目前没有别的编译器)

结果:把f左边的g删了

5.\v : 垂直制表

即竖向跳格,vs2022为类似换行的效果

结果:理论上是竖向跳格,感官上是换行

6.\r : 回车

将光标位置移到首位

先打印sdvgbag后遇到\r,光标挪到最左边把开始打印的覆盖后继续打印

结果:只输出faeg

7.\f : 换页,走纸符

将当前位置光标移到下一页开头,在控制台中无法体现出作用,在打印走纸换页时可以使用,它能将后面的文体打印到一张新纸

结果:理论上光标挪到下一页上继续打印,观感上,在控制台中类似换行

8.\a : 发出鸣响

输出\a时会有错误音效

结果:电脑发出警告提示音

9.\":输出/输入双引号("")

结果:在g后面多输出了一个“

10.\':输出/输入单引号('')

结果:在g后面多输出了一个‘

11.\? : 输出/输入问号(?)

结果:在g后面多输出了一个?

引申:三字母词

在一些古老编译器中会出现三字母词的问题

printf("%s\n","(hello??)")

正常情况下,输出的结果应该是(hello??)

在古老编译器中则会把??)翻译成 ] ,

(hello]

 所以,为了避免三字母词的问题出现,建议把??改成\?\?

printf("%s\n","(hello\?\?)")

结果:

(hello??)

当然现在的编译器大多数都不会出现这个问题,但是还是希望可以规范语法书写

12.\\ : 输出/输入反斜杠(\)

结果:在g后面多输出了一个\

13.\/:输出/输入斜杠(/)

结果:在g后面多输出了一个/

14.\ddd : 1~3位八进制所代表的字符,举例:\101\n 结果:A : 八进制101对应十进制为65,对应ASCII码为 A

15.\xhh : hh指两位十六进制所代表的字符,使用前要加\x,举例:\x41\n 结果:A : 八进制101对应十进制为65,对应ASCII码为 A

问:

printf("%d\n",strlen("c:\test\628\test.c"));

以上代码有几个单位长度呢?

答:14

\t只算一个单位

\628呢?众所周知,八进制是从0-7的,咩有8啊。所以应该吧\62看成一个单位,8是一个单位

而\0只站位但是却不表示,所以答案是14

3.ASCII码

 ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符——来自百度百科

附加ASCII码

4.尾声

       此上就是我在学习转义字符的简单学习心得,有错误希望各位大佬指出,小的会在第一时间检查并修改,让我们下一篇再见

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值