C语言| 转义字符详解

目录

    • 1. 部分汇总
    • 2. 作用详解和演示
      • 2.1\a
      • 2.2 \b
      • 2.3 \t
      • 2.4 \n
      • 2.5 \v
      • 2.6 \f和\r
      • 2.7 \的作用
      • 2.8 \0oo和\xhh

转义是无法直接在代码中写出所要的字符时采用的,以多个字符的有序组合来表示原本需要的字符的手段。转义字符是这些字符的组合,一般为非打印字符。

1. 部分汇总

转义序列 含义 ASCII(十进制)
\a 警报 7
\b 退格 8
\t 水平制表符 9
\n 换行 10
\v 垂直制表符 11
\f 换页 12
\r 回车 13
\\ 反斜杠
单引号
" 双引号
? 问号
\0oo 八进制值
\xhh 十六进制值

2. 作用详解和演示

2.1\a

\a 的效果是发出一声蜂鸣,但不会移动屏幕的光标

2.2 \b

\b 的效果是将屏幕光标从当前的位置向左移动一个字符(遇到\n会停止)

#include 
int main(){
    printf("hello,world!\n");
    printf("14\b\b\b3");
}
//输出结果
hell,world!
34

由第一个输出结果来看\b在遇到\n会停止

第二行结果中,不同编译器可能会有不同结果,我在编译过程中\b产生了擦除结果(覆盖了1),而有些编译器不会产生擦除结果,只有退格结果,即结果为314,有一定争议


2.3 \t

\t 将光标移到下一个水平制表符(移动到位置一般为第1个,第9个,第17个等),然后继续输出字符,这其中\t会用空格补齐无字符的位置

#include
 int main()
{
    printf("\ta\n");
    printf("12345678a\n");
    printf("-----------------\n"); //
    printf("\ta\n");
    printf("12\ta\n");
    printf("1234567\ta\n");
    printf("-----------------\n"); // 若前面的字节<=7,则光标移动到第9个位置
    printf("\ta\n");
    printf("12345678\ta\n");
    printf("123456789111213\ta\n");//若前面的字符>=8,则光标移动到第17个位置
    return 0;
};
}

输出结果

        a
12345678a
-----------------
        a
12      a
1234567 a
-----------------
        a
12345678        a
123456789111213 a


2.4 \n

\n 的效果是将光标移至下一行的开始


2.5 \v

\v 的效果让光标移到下一行垂直制表符,然后继续输出字符

#include
 int main()
{
    printf("-----------------\n");
    printf("123\v");
    getchar();
    printf("-----------------\n"); // 若前面的字节<=7,则光标移动到第9个位置
    return 0;
}

输出结果
C语言| 转义字符详解_第1张图片
ps:注意看光标位置


2.6 \f和\r

  • \f 效果是将光标移动到下一页的开始处
  • \r 的效果是将光标移动到当前行的开始处
#include
 int main()
{
    printf("123\r");
    getchar();
    return 0;
}

运行结果

C语言| 转义字符详解_第2张图片

ps:注意光标位置


2.7 \的作用

\\、'、" 都是为了打印字符\、”、‘,如果直接使用它们,会造成乱码

#include
 int main()
{
    printf("--------------\n");
    printf("\\123\n");
    printf("\'123\n");
    printf("\"123\n");
    printf("--------------");
    return 0;
}

运行结果

--------------
\123
'123
"123
--------------

2.8 \0oo和\xhh

  • \0oo和\xhh 的效果是利用ASCII码来表达这其中的字符,\012\n作用一样,而\x07\a作用一样,这是为了编译器无法识别部分转义字符时,可以用ASCII码代替
#include
 int main()
{
    printf("--------------\n");
    printf("\012");
    printf("\x07\n");
    printf("--------------");
    return 0;
}

运行结果:

--------------

--------------//会鸣笛一声

--------------\n");
printf(“\012”);
printf(“\x07\n”);
printf(“--------------”);
return 0;
}


运行结果

```c
--------------

--------------//会鸣笛一声

你可能感兴趣的:(C语言基础篇,c语言,开发语言)