C语言转义字符

发布时间 2023-11-15 19:48:47作者: BryceAi

在我们实际生活中,有一些特殊的字符,它们并没有实际的意义,但是我们需要用到它们,比如换行、制表符等。在C语言中,我们可以使用转义字符来表示这些特殊的字符。转义字符是以反斜杠\开头的字符,比如\n表示换行,\t表示制表符。下面是一些常用的转义字符:

转义字符 含义
\n 换行
\t 制表符
\\ 反斜杠
\" 双引号
\' 单引号
\? 问号
\a 警报
\b 退格
\f 换页
\r 回车
\v 垂直制表
\ooo 八进制ASCII
\xhh 十六进制ASCII
\0 空字符

转义字符表示一个字符,只是表现形式是两个字符组成的。下面分别解释一下这些转义字符的含义:

首先我们明确字符输出的具体过程。程序在执行的时候,会将字符串中的每一个字符输出到屏幕上,然后将光标移动到下一个字符的位置,再次输出,直到字符串的最后一个字符输出完毕。输出时光标所在的位置如果有字符,那么会覆盖掉原来的字符。

  • \n:换行,将光标移动到下一行的行首。
    • 当前一个字符输出后,遇到了\n,那么光标会移动到下一行的行首,然后输出下一个字符。
  • \t:制表符,将光标移动到下一个制表符位置。
    • 当前一个字符输出后,遇到了\t,那么光标会移动到下一个制表符位置,然后输出下一个字符。
    • 制表符(也叫制表位)的功能是在不使用表格的情况下在垂直方向按列对齐文本。
    • 一般情况下,制表符的位置是每隔8个字符。ASCII码中的字符每个占一个字符位置,汉字每个占两个字符位置。
  • \\:反斜杠,输出一个反斜杠。
    • 当前一个字符输出后,遇到了\\,那么输出一个反斜杠。
  • \":双引号,输出一个双引号。
    • 当前一个字符输出后,遇到了\",那么输出一个双引号。
  • \':单引号,输出一个单引号。
    • 当前一个字符输出后,遇到了\',那么输出一个单引号。
  • \?:问号,输出一个问号。
    • 当前一个字符输出后,遇到了\?,那么输出一个问号。
  • \a:警报,输出一个警报。
    • 当前一个字符输出后,遇到了\a,那么输出一个警报。
    • 警报的具体表现形式是:发出一声嘟的声音。
  • \b:退格,将光标移动到上一个字符的位置。
    • 当前一个字符输出后,遇到了\b,那么光标会移动到上一个字符的位置,然后输出下一个字符。
  • \f:换页,将光标移动到下一页的行首。
    • 当前一个字符输出后,遇到了\f,那么光标会移动到下一页的行首,然后输出下一个字符。
    • 一般在控制台中,这个转义字符没有效果。在一些文本编辑器中,这个转义字符的效果是将光标移动到下一页的行首。
  • \r:回车,将光标移动到当前行的行首。
    • 当前一个字符输出后,遇到了\r,那么光标会移动到当前行的行首,然后输出下一个字符。
  • \v:垂直制表,将光标移动到下一个垂直制表符位置。
    • 当前一个字符输出后,遇到了\v,那么光标会移动到下一个垂直制表符位置,然后输出下一个字符。
    • 具体的效果是将光标向下移动一个字符位置。
  • \ooo:八进制ASCII,输出一个八进制ASCII码对应的字符。
    • 当前一个字符输出后,遇到了\ooo,那么输出一个八进制ASCII码对应的字符。
    • 八进制ASCII码是指以八进制表示的ASCII码,比如\141表示的是字符a
  • \xhh:十六进制ASCII,输出一个十六进制ASCII码对应的字符。
    • 当前一个字符输出后,遇到了\xhh,那么输出一个十六进制ASCII码对应的字符。
    • 十六进制ASCII码是指以十六进制表示的ASCII码,比如\x61表示的是字符a
  • \0:空字符,输出一个空字符。
    • 当前一个字符输出后,遇到了\0,那么输出一个空字符。
    • 空字符的ASCII码是0,所以也可以写成\0
    • 注意,空字符和空格是不同的,空格的ASCII码是32。