§2.5 转义字符
本文部分内容来自于百度百科。
§2.5.1 引子&定义
所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些屏幕上不能显示的ASCII字符(如\0,\t,\n等),将其定义为转义字符——因为后面的字符,都不是它本来的ASCII字符意思了。
转义字符是很多程序语言、数据格式和通信协议的形式文法的一部分。对于一个给定的字母表,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。因此转义字符开头的字符序列被叫做转义序列。
转义序列通常有两种功能。第一个是编码一个句法上的实体,如设备命令或者无法被字母表直接表示的特殊数据。第二种功能,也叫字符引用,用于表示无法在当前上下文中被键盘录入的字符(如字符串中的回车符),或者在当前上下文中会有不期望的含义的字符(如C语言字符串中的双引号字符,不能直接出现,必须用转义序列表示)。在后面那种情况,转义序列是一种由转义字符自身和一个被引用的字符组成的一个二合字母(digraph)情形。
§2.5.2 字符表
注意:
(1)区分斜杠" / " 与 反斜杠" \ " ,此处它们不可互换;
(2) \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’。
§2.5.3 “转义字符”与“控制字符”概念辨析
转义字符不属于控制字符;控制字符也不属于转义字符。如果控制字符的定义是非图形的字符,或者对输出设备(打印机、文本终端)有特殊意义的字符,那么针对这些设备的转义字符也是控制字符。但是程序设计用的转义字符是图形字符,因此它们不是控制字符。相反地,大多数ASCII控制字符均单独具有控制功能,因此它们不是转义字符。
§2.5.4 重难点
本节重点介绍换行符、反斜线与水平制表符。
(1)换行符
要注意到,在C语言中,没有“endl”。
因此可以在输出命令双引号的文字最后加上“\n”
参考代码如下:
#include<iostream>
using namespace std;
int main() {
//换行符“\n”:
cout << "Hello World!\n";
system("pause");
return 0;
}
运行效果如图示:
(2)反斜线
必须输入两次“\”,才能输出一个“\”。
参考代码如下(顺便观察一波换行符的作用):
#include<iostream>
using namespace std;
int main() {
//换行符“\n”:
cout << "Hello World!\n";
//反斜线“\”:
cout << "\\" << endl;
system("pause");
return 0;
}
运行效果如图示:
§2.5.5
每个水平制表符会占用8个字符的固定空间。
作用:输出至窗口时,有对齐效果,看起来美观整齐。
参考代码:
#include<iostream>
using namespace std;
int main() {
//水平制表符“\t”:
cout << "x\tHello World!" << endl;
cout << "xx\tHello World!" << endl;
cout << "xxx\tHello World!" << endl;
cout << "xxxx\tHello World!" << endl;
cout << "xxxxx\tHello World!" << endl;
system("pause");
return 0;
}
运行效果如图示: