导读
在我们进行C语言编译时,总会面对一个尴尬的问题,当我们想要在屏幕上打印一个’/'字符时,可无论我们怎么编译都无法实现😩,这个时候就是我们使用转义字符的时间了。
转移字符
转义字符(Escape character),所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
常用的转义字符
转义字符(ASCII码值(十进制)) |
意义 |
\a (007) |
响铃(BEL) |
\b (008) |
退格(BS) ,将当前位置移到前一列 |
\f (012) |
换页(FF),将当前位置移到下页开头 |
\n (010) |
换行(LF) ,将当前位置移到下一行开头 |
\r (013) |
回车(CR) ,将当前位置移到本行开头 |
\t (009) |
水平制表(HT) (跳到下一个TAB位置) |
\v (011) |
垂直制表(VT) |
\\ (092) |
代表一个反斜线字符’’ |
\’(039) |
代表一个单引号(撇号)字符 |
\"(034) |
代表一个双引号字符 |
\?(063) |
代表一个问号 |
\0(000) |
空字符(NULL) |
\ooo(三位八进制) |
1到3位八进制数所代表的任意字符 |
\xhh(十六进制) |
十六进制所代表的任意字符 |
使用
‘\a’
这个响铃不是指从声卡上放出来的,连接在声卡上的音箱和耳机响,而是指主板上的蜂鸣器,
可以通过操作系统来操作,在字符终端下显示这个字符的效果是PC喇叭发出嘀的一声,在图形界面终端下的效果取决于终端的实现。
‘\b’
\b在C程序中是向左移动光标的作用,而不是键盘上的退格,并且如果\b左边有\n,则要考虑换行后不能退格回到上一行,只能留在本行的问题。
#include<stdio.h> int main() { printf("1234\n5\babc"); return 0; }
显然这里的5被我们删去了
\r
就是回车,并且回到行首会覆盖原来的内容
#include<stdio.h> int main() { printf("1234\r5abc"); return 0;
‘\n’
换行
#include<stdio.h> int main() { printf("1234\n5abc"); return 0; }
‘\t’
是一个大的空格
#include<stdio.h> int main() { printf("1234\t5abc"); return 0; }
‘\f’
将当前位置移到下页开头 #include<stdio.h> int main() { printf("1234\f5abc"); return 0; }
‘\v’
#include<stdio.h> int main() { printf("1234\v\v\v5abc"); return 0; }
?
打印一个问号
#include<stdio.h> int main() { printf("\? "); return 0; }
\
打印一个斜杠
#include<stdio.h> int main() { printf("\\"); return 0; }
‘和’’
打印一个单引号和打印一个双引号
#include<stdio.h> int main() { printf("\'\n\""); return 0; }
/0
‘\0’ 是字符串的结束符,任何字符串之后都会自动加上’\0’。如果字符串末尾少了‘\0’字符,则其在输出时可能会出现乱码问题.
\ooo和\x00
输出其相应进制ascII所带表的字符
#include<stdio.h> int main() { printf("\123\n\x23"); return 0; }