189 8069 5689

C语言——转义字符-创新互联

C语言——转义字符

​ 转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

创新互联建站专注于芦山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供芦山营销型网站建设,芦山网站制作、芦山网页设计、芦山网站官网定制、小程序制作服务,打造芦山网络公司原创品牌,更为您提供芦山网站排名全网营销落地服务。常见转义字符
转义字符释义
?在书写连续多个问号时使用,防止他们被解析成三字母词
\`用于表示字符常量`
\"用于表示一个字符产内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。如:\130X
\xdddd表示2个十六进制数字。如:\x30 0

下面是它们具体的使用方法
  • ?

在某些编译器下 ,会将 “ ??) ” 解析成 三字母词 “ ] ” ,
所以在打印 “ ??) ”时,为了防止被解析成三字母词,在它前面加 " \",改成 ” ??) “ 。


  • \`

像这样打印单引号时会造成编译器无法编译:

printf("%c",''');

在 ’ 前面加 \ 将它转义就可以打印出来了,

像这样

printf( "%c",' \' ');

在这里插入图片描述

  • \"

与 \` 用法相同,这里就不再赘述了。


  • \\

用来表示一个反斜杠,防止它被解释为一个转义序列符,

当你想打印一个文件路径时,如果直接这样写:

printf("c:\test\test.c");

那打印出来的结果将是这样的:

在这里插入图片描述

这是因为 \t 会被编译器解析为水平制表符,

正确的写法是在 \ 的前面加 \ 进行转义, 防止被解析为 \t,

printf("c:\\test\\test.c");

打印出来的结果是这样的:
在这里插入图片描述


  • \a

在打印 \a 时会触发电脑上的蜂鸣器.。


  • \ddd

ddd表示1-3个八进制的数字。将ddd三个数字转换成十进制,十进制数对应的ASCAII就是结果。

猜一猜下面的代码打印出的是什么?

printf("%c",'\130');

在这里插入图片描述

​为什么会是X?

因为输出结果为字符型,将八进制数字130转换为十进制为88,然后输出在[ASCII表](ASCII_百度百科 (baidu.com))中对应的字符X。

如果输出类型为整型,打印的结果就是八进制130转换为十进制的结果

像这样:

printf("%d",'\130');

在这里插入图片描述

​ 其实 \ddd 最多只支持三位数字,并且三位数字也不是任意的(每个数字不能大于8,一旦大于8它就不是八进制数了),一旦大于等于八进制数 '/400 '(十进制256=8进制400)就超过了ascall码的范围,编译器就会报错。另外大于三位,或者遇到非八进制数字时则转换结束,直接取末尾数字。


  • \xdd

同样首先要了解的是dd表示2个十六进制数,

猜一猜下面的代码打印出的是什么?

printf("%c",'\x30');

在这里插入图片描述

为什么是0呢?

因为输出结果为字符型,将十六进制数字30转换为十进制为48,然后输出在ASCII表中对应的字符 0。

同样的,如果输出类型为整型,打印的结果就是十六进制30转换为十进制的结果。

printf("%d",'\x30');

在这里插入图片描述


来看一看下面的练习题吧

1. 猜猜下面的代码打印的数字是多少?

printf("%d",strlen("qwer t"));

答案是:

在这里插入图片描述

为什么是6呢?

  • 首先,strlen求得是字符串长度
  • 其次,空格也是一个字符
  • 然后,字符串末尾的\0不算是字符

所以打印的结果就是6了。


2. 再猜猜下面的代码打印的数字是多少?

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

答案是:
在这里插入图片描述

为什么是14呢?

因为这个字符串中有转义字符存在。

红色方框里的部分都会被转义成一个字符,
在这里插入图片描述
这里要注意这里的628不是八进制数字,62是八进制数字
八进制数字每个数字大不能大于7,大于7就要进位了。
所以一共有14个字符。

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


文章名称:C语言——转义字符-创新互联
文章起源:http://cdxtjz.cn/article/dchhge.html

其他资讯