一.导入
如果我们想要调用printf()函数打印以下内容:
c:\ncre\test
那我们该如何编写代码呢?以下是我们以常理思维编写的代码:
#include<stdio.h>
int main(void){
printf("c:\ncre\test");
return 0;
}
但是当我们运行以后会发现程序输出的结果出乎我们意料,如图所示:
程序输出的结果之所以不尽人意是因为转义字符起了作用,什么是转义字符?我们可以从字面理解这个词的意思就是:转换字符的意思
如果我们想要让这段字符串正常的输出代码就应该修改成如下形式:
#include<stdio.h>
int main(void){
printf("c:\\ncre\\test");
return 0;
}
我们只需要在字符 n 与 t 前再加上一个 \ 就可以获得我们想要的结果,其实这就是转义字符的作用
我们再来看一段代码:
#include<stdio.h>
int main(void){
printf("abcn");
return 0;
}
这段代码显然会输出字符串 abcn ,但是当我们将 n 的前面加一个 \ 号这样子这段代码的意思就改变了,代码如下:
#include<stdio.h>
int main(void){
printf("abc\n");
return 0;
}
这时候程序只会输出字符串 abc 但是光标会自动换行到下一行,我们可以通过观察下面两个图来进行区别:
所以这里的 \n 就是一个转义字符,其作用是换行,我们接下来再来举一些例子来更好的了解转义字符
二.转义字符详解
示例1:
没有转义字符:
#include<stdio.h>
int main(void){
printf("abc0efg");
return 0;
}
带有转义字符:
#include<stdio.h>
int main(void){
printf("abc\0efg");
return 0;
}
我们来看一下这两个代码运行的区别
没有转义字符:
带有转义字符:
我们可以看到当我们在字符串中插入 \0 这个转义字符的时候后面的字符串就没有被输出,我们之前讲过 \0 是字符串结束标识,所以当printf()函数读取到 \0 的时候便会停止读取后面的内容
以下是一些常用的转义字符以及其作用:
\? 表示?(在老版编译器中也可以有效避免识别成三字母词)
\' 表示字符常量
\" 表示字符串内的双引号
\\ 表示一个反斜杠 \
\n 表示换行符
\a 发出警告音效(取决于硬件与系统)
\t 表示水平制表符
\v 表示垂直制表符
\b 表示退格符
这里大概介绍一下三字母词的意思,在老版本的编译器中 ??) 与 ??( 可能会变成 ] 与 [
??) ----> ]
??( ----> [
例如我们写一段代码:
#include<stdio.h>
int main(void){
printf("%s\n","(are you ok??)");
return 0;
}
程序本应输出 (are you ok??) ,但是在老版本的编译上可能会输出 (are you ok] ,所以我们使用转义字符 \? 就可以有效的避免这种现象的发生
我们知道 %c 是用来打印字符的,比如我们需要打印字符 A 那么我们可以将代码写成如下形式:
#include<stdio.h>
int main(void){
printf("%c",'A');
return 0;
}
程序运行结果如图所示:
但是如果我们使用相同的方式来打印 ' (单引号)的时候就会发现程序无法正常的编译,如图所示:
原因是 ' 号需要两两配对程序中出现了三个 ' 号代表着有一个 ' 是无法配对的所以程序会出现问题,解决方法也是与上面类似,我们只需要让那个想要打印的 ' 号变成转义字符就可以了,所以我们可以将代码修改成如下形式:
#include<stdio.h>
int main(void){
printf("%c",'\'');
return 0;
}
我们修改完代码后重新编译并运行程序就可以发现 ' 号能被正常的打印出来了
接下来我们来看一下换行符 \n 的用法,顾名思义换行符作用就是换行,我们接下来用一段简单的代码来展示换行符的作用,代码如下:
#include<stdio.h>
int main(void){
printf("hello!");
printf("what's your name?");
return 0;
}
当我们运行上述代码的时候会发现这两句话连在一起了,有点不美观,如图所示:
如果我们想让他们分行显示就需要用到换行符 \n 我们只需要在 hello!的末尾加上 \n 即可,代码如下:
#include<stdio.h>
int main(void){
printf("hello!\n");
printf("what's your name?");
return 0;
}
我们再次运行程序就可以发现这两段句话被分开了:
这就是 \n 换行符的作用
2023/9/22
王起舟