在 C 语言中,转义字符是一种特殊的字符,它是由一个 “/”(反斜杠)和后面的字符组成。
C 为什么要使用转义字符?
在介绍转义字符是什么之前,我们先来看一个简单的例子。
示例 1:没有加上换行符
#include <stdio.h>
int main(void)
{
char a = 'a';
char b = 'b';
printf("%c", a);
printf("%c", b);
return 0;
}运行结果如下。
ab分析:
在这个例子中,我们定义了 2 个字符型变量,然后再使用 printf() 函数把这 2 个变量打印出来。从结果可以看出来,2 次的打印结果在一行内显示了。但我们更希望在输出第一个变量之后,换行再输出第二个变量,此时应该怎么实现呢?
在 C 语言中,我们可以使用转义字符的方式来输出一些特殊的符号,比如换行符就是一种特殊的字符。在 C 语言中,常见的转义字符如下表所示。
| 转义字符 | 说明 |
|---|---|
| \' | 英文单引号 |
| \" | 英文双引号 |
| \n | 换行符 |
| \t | 制表符 |
| \r | 回车符 |
| \b | 退格符 |
| \\ | 反斜杠 |
转义字符一般都是用 “反斜杠(\)” 开头的,这是它最重要的一个特点。实际上,C 语言中的转义字符很多,只需要了解上表的几种即可。
此外,“\t” 是一个制表符,它就是一个 Tab 键的空格大小。“\t” 通常用于对齐,它的宽度不固定,取决于显示环境,常见的是等于 4 个或 8 个空格的宽度。”
在使用转义字符时,小伙伴们需要注意以下 2 点。
- 转义字符要严格区分大小写,比如 “\n” 是换行符,但 “\N” 却不是。
- 想要在字符串中表示反斜杠,应该使用转义字符 “\\”,而不是写成 “\”。
C 转义字符的使用
在 C 语言中中,转义字符是一种特殊的字符,引入转义字符的目的有 2 个。
- 表示无法 “看见” 的字符,例如换行符 \n。
- 表示与语法冲突的字符,例如 \' 和 \"。
示例 2:加上换行符
#include <stdio.h>
int main(void)
{
char a = 'a';
char b = 'b';
char c = '\n';
printf("%c", a);
printf("%c", c);
printf("%c", b);
return 0;
}运行结果如下。
a
b分析:
变量 c 是一个换行符,我们在输出 a 和 b 之间去输出变量 c,此时就使得结果中的 'a' 和 'b' 换行了。换行符是一种特殊字符,它本身是 “看不见摸不着” 的,但是这里已经体现了它的功能了(也就是换行)。
其实为了在多个输出之间换行,我们没必要像上面这样那么麻烦,还专门定义一个用于换行的变量。我们可以在 printf() 函数的第一个参数里面加入 “\n“,就可以实现换行了,请看下面例子。
示例 3:printf() 函数加入 “\n”
#include <stdio.h>
int main(void)
{
char a = 'a';
char b = 'b';
printf("%c\n", a);
printf("%c", b);
return 0;
}运行结果如下。
a
b分析:
在实际开发中,如果想要在多个输出结果之间进行换行,我们都建议使用上面例子这种方式来实现。
示例 4:多个打印结果之间换行
#include <stdio.h>
int main(void)
{
int a = 10;
int b = 20;
printf("%d\n", a);
printf("%d", b);
return 0;
}运行结果如下。
10
20示例 5:打印单引号
#include <stdio.h>
int main(void)
{
char a = '\'';
printf("%c", a);
return 0;
}运行结果如下。
'分析:
由于单引号和双引号已经被 C 语言内部使用了,所以如果想要表示一个单引号的字符,就必须使用转义字符才能实现。
// 正确方式
char a = '\'';
// 错误方式
char a = ''';为什么使用 char a = '''; 这种方式无法表示一个单引号呢?因为这里有 3 个单引号,C 语言无法判断哪两个单引号是一对的,所以就会报错。
示例 6:打印 “\”
#include <stdio.h>
int main(void)
{
char a = '\\';
printf("%c", a);
return 0;
}运行结果如下。
\分析:
另外,由于 “\” 这个符号也被 C 语言内部使用了,所以想要表示一个 “\” 符号,也要使用转义字符来实现。对于一般的转义字符,我们直接在前面加上一个 “\” 就可以了,所以 “\” 前面再加上 “\”,就应该是 “\\”。
示例 7:使用制表符(\t)
#include <stdio.h>
int main(void)
{
printf("姓名:\t张三\n");
printf("年龄:\t25\n");
return 0;
}运行结果如下。
姓名: 张三
年龄: 25分析:
从结果可以看到,“姓名:” 和 “张三” 之间,以及 “年龄:” 和 “25” 之间都出现了一定的空白间隔,这是制表符的效果,用于在文本输出中创建列对齐的效果。
