C语言初阶之转义字符(下)

简介: 输出水平制表符\t后,当前显示位置就会移动到本行的下一个水平制表位置,没有规定当前位置位于或超过本行最后的水平制表位置时程序该如何运作,水平制表位置要取决于操作系统的环境,有些环境把水平制表位置设定在每行开头8位的地方,还有些环境把水平制表位置设定在距每行开头4位的地方。

7、水平制表符


水平制表符\t

输出水平制表符\t后,当前显示位置就会移动到本行的下一个水平制表位置,

没有规定当前位置位于或超过本行最后的水平制表位置时程序该如何运作,

水平制表位置要取决于操作系统的环境,

有些环境把水平制表位置设定在每行开头8位的地方,

还有些环境把水平制表位置设定在距每行开头4位的地方。

如下面代码所示:


#include<stdio.h>
void main() {
  printf("1234567812345678\n"); 
  printf("\ta\n");                    
  printf("1234\ta\n");                           
  printf("12345678\ta\n");             
  return 0;
}


输出结果:


4ab644eac50d461b8a115729dc1e6039.png


在这段代码中,我们可以很好的观察到,在我的操作系统中,一个水平制表位是8个空格


8、垂直制表符


垂直制表符\v

输出垂直制表符\v后,当前显示位置就会移动到下一个垂直制表位置中最开始的位置。

没有规定当前位置位于或超过本行最后的垂直制表位置时程序该如何运作。

如下面代码所示:


#include<stdio.h>
void main() {
    printf("123\v456"); 
    return 0;
}


理论效果:


123
   456


为什么说是理论效果,因为在控制台输出的时候只会有换行效果(手动滑稽)

垂直制表符\v和换页符 f一样,都主要在打印输出时使用


9、反斜杠字符


反斜杠表符 \\

我们用转义字符\\来表示反斜杠字符\

别问为什么,一个输出不了,转义字符用它定义,输出自己当然得再加一个嘛

这个没什么好讲的。。。


10、问号字符


问号字符 \?

表示问号的转义字符是\?。因为可以不用\? 而只用?,

所以基本上没什么人使用这个转义字符,这个和上面那个一样无聊。。。


11、单引号字符和双引号字符


单引号字符\’和双引号字符\”

表示单引号和双引号的转义字符分别是\’和\”。

在字符串常量中,双引号必须用\”来表示,表示字符串12"3的字符串常量就是"12\”3"。

另外,单引号可以用’和\’这两种方式来表示,

单引号的字符常量写为’ \’ ‘(不能写为’‘’)。表示双引号的字符常量则可以写为’ " ‘或’ \" '。

(这单双引号快给我搞吐了)

这个原理有点像上面的反斜杠,因为本身和printf函数里的双引号冲突

比如下面代码:


#include<stdio.h>
void main() {
  printf("关于字符串常量和字符常量。\n");
  printf("双引号"); 
  putchar('"');
  printf("\n");
  printf("用双引号括起来的\"123\"是字符串常量。\n");//双引号的体现
  printf("单引号"); 
  putchar('\'');
  printf("\n");
  printf("用单引号括起来的'1'是字符常量。\n");//单引号的体现
  return 0;
}


输出结果:


关于字符串常量和字符常量。
双引号"
用双引号括起来的"123"是字符串常量。
单引号'
用单引号括起来的'1'是字符常量。


三 、八进制转义字符


八进制转义字符\ddd

八进制转义字符的格式就是\ddd(有些书上是\ooo,这个字母本身替代的是八进制数,所以用什么字母替代不重要),d的范围是0~7,用1到3位八进制数来表示。

举个例子:


#include<stdio.h>
void main() {
  printf("%c\n", '\141');
  printf("%d", '\141');
  return 0;
}


输出结果是


a
97


第一个打印输出函数调用的是单个字符格式化符号,在ASCII中八进制数141是字母a;

第二个打印输出函数调用的是十进制整型数据格式化符号,八进制数141转为十进制数就是97。


四、十六进制转义字符


十六进制转义字符\xhh

十六进制转义字符的格式是\xhh(和八进制转义字符描述类似)

\x是固定的,h的范围是0-F,用任意位数的十六进制数来表示。

举个例子:


#include<stdio.h>
void main() {
  printf("%c\n", '\x2B');
  printf("%d", '\x2B');
  return 0;
}


输出结果是


+
43


第一个打印输出函数调用的是单个字符格式化符号,在ASCII中十六进制数2B是字符+;

第二个打印输出函数调用的是十进制整型数据格式化符号,十六进制数2B转为十进制数就是43。


ASCII表对应可以看这:ASCII码一览表


使用八进制和十六进制转义字符的时候一定要注意它的值的范围,它们的本质是表示那些不能显示的ASCII字符,标准ASCII码表码值的最大值为127,拓展ASCII码表码值的最大值到255.当转义字符的表示值过大时,此时的转义字符就没有实际的意义了。


五、总结


这就是所有的转义字符的介绍了,文章有些专业术语介绍来自《明解C语言中级篇》,作者也非常推荐大家看这本书,非常适合小白入门C语言。


制作不易,看了这么多,给个一键三连呦!

如有不正之处,敬请指出,感谢你的来访!!!😊😊😊

e4e205a624a14a9b97fcd098e5c178d2.png

相关文章
|
5天前
|
程序员 C语言
C语言中的转义字符表
C语言中的转义字符表
14 0
|
5天前
|
程序员 编译器 C语言
【c语言】c语言转义字符详解
【c语言】c语言转义字符详解
191 1
|
5天前
|
C语言
C语言转义字符第二篇和strlen库函数的使用
C语言转义字符第二篇和strlen库函数的使用
|
5天前
|
编译器 C语言
C语言的转义字符,转义字符的用法
C语言的转义字符,转义字符的用法
|
5天前
|
存储 编译器 C语言
c语言进阶部分详解(指针初阶)
c语言进阶部分详解(指针初阶)
57 0
|
5天前
|
存储 人工智能 C语言
『C语言初阶』第八章 -结构体
『C语言初阶』第八章 -结构体
|
5天前
|
存储 C语言
『C语言初阶』第七章 -初识指针
『C语言初阶』第七章 -初识指针
|
5天前
|
C语言
C语言6🔥:本地变量与转义字符
C语言6🔥:本地变量与转义字符
21 0
|
5天前
|
编译器 C语言
C语言入门之变量、常量、字符串、转义字符
C语言入门之变量、常量、字符串、转义字符
|
5天前
|
C语言
C语言之转义字符详解
C语言之转义字符详解
23 0