C语言——转义字符

简介: C语言——转义字符

一、转义字符


1.1转义字符 及其 含义

转义字符

含义

\n

换行

\r

回车

\b

退格符

\f

进纸符(就是换页,将后面的文本打印到一张新纸)

//不常用

\a

警告字符,电脑响铃

\t

水平制表符

\v

垂直制表符

//不常用

\'

用于表示一个字符常量 '

\"

用于表示字符串内部的双引号

\\

用于表示一个反斜杠\(防止被解释成一个转义字符)

\?

用于表示一个问号?(要输出连续多个问号时使用,防止被解释成三字母词)*①

\0

表示空字符

\ddd

ddd表示1~3个八进制数字

\xdd

dd表示2个十六进制数字

*① ANSI C标准中,定义了9个三字母词,(如"??)"直接printf后会变成"]").但是不同编译器对ANSI C的支持不一样,我用的VS2022就不支持三字母词,栗子如下:


二、举例(各种转义字符+判断字符个数)


2.1 转义字符举例


①\n和\r


\n:

#include <stdio.h>
int main()
{
    printf("I\nlove\nChina\n");
    return 0;
}

调试结果:  I

                   love

                   China


→ 每写一个\n,接下来的内容换到下一行


\r:

#include <stdio.h>
int main()
{
    printf("I\nlove\rChina\n");
    return 0;
}

调试结果:I              


                  China


→\r 的“回车”跟咱们平时说的“回车”不同,平时说的回车相当于这里的换行,而 \r  则是让光标返回到本行最开始的位置,如果后面继续输入字符,会逐个覆盖本行原来的字符


②\b:作用相当于键盘上的Backspace键,显示的时候光标退回前一个字符,但不会删除这个字符,but如果后边有新的字符,新的字符会覆盖退回的那个字符

#include <stdio.h>
int main()
{
    printf("abcd\be");
    return 0;
}

调试结果:acbe


③\t: 水平制表符,相当于键盘上的Tab键


④\ddd和\xdd:


以\ddd为例,ddd表示3个八进制数字(比如:007,072,114(无意义的0可省略)),把这个数字转换成十进制数字,输出即为这个十进制数字对应ASCII码值。


同理,对于\xdd,\x是固定的格式,dd表示2个十六进制数字,把这个数字转换成十进制数字,输出即为这个十进制数字对应ASCII码值。


#include <stdio.h>
int main()
{
printf("\041 ");
printf("\073 ");
printf("\114 \n");
printf("\x31 ");
printf("\x52 ");
return 0;
}

输出为:


因为第一组三个八进制数字分别对应十进制:33、59、76


第二组两个十六进制数字分别对应十进制:49、82


对照ASCII码表,



是不是非常显然了呢


2.2 判断字符个数


#include <stdio.h>
int main()
{
  printf("hello\ab\t\n");
  return 0;
}

字符数为9,因为\a、\t、\n都是转义字符,当作一个字符来看


②进制-陷阱1

#include <stdio.h>
int main()
{
  printf("??as:\629\test");
  return 0;
}

字符数为11,这里要注意的是\629不是一个转义字符,因为“\ddd”规定的d是八进制数字,而八进制数字每一位只包含0~7中的一个数字,因此\629是两个字符:“\62”、“9”


③进制-陷阱2

#include <stdio.h>
int main()
{
  printf("??as:\651\test");
  return 0;
}

debug时会报错,因为\651对应十进制425,超过了ASCII码表的范围(0~127)

相关文章
|
2月前
|
程序员 C语言
C语言中的转义字符表
C语言中的转义字符表
14 0
|
2月前
|
程序员 编译器 C语言
【c语言】c语言转义字符详解
【c语言】c语言转义字符详解
187 1
|
5月前
|
C语言
C语言转义字符第二篇和strlen库函数的使用
C语言转义字符第二篇和strlen库函数的使用
|
5月前
|
编译器 C语言
C语言的转义字符,转义字符的用法
C语言的转义字符,转义字符的用法
|
10月前
|
C语言
C语言初阶之转义字符(下)
输出水平制表符\t后,当前显示位置就会移动到本行的下一个水平制表位置,没有规定当前位置位于或超过本行最后的水平制表位置时程序该如何运作,水平制表位置要取决于操作系统的环境,有些环境把水平制表位置设定在每行开头8位的地方,还有些环境把水平制表位置设定在距每行开头4位的地方。
|
2月前
|
C语言
C语言6🔥:本地变量与转义字符
C语言6🔥:本地变量与转义字符
21 0
|
2月前
|
编译器 C语言
C语言入门之变量、常量、字符串、转义字符
C语言入门之变量、常量、字符串、转义字符
|
2月前
|
C语言
C语言之转义字符详解
C语言之转义字符详解
19 0
|
6月前
|
机器学习/深度学习 编译器 C语言
C语言中转义字符,你熟练掌握了吗?
C语言中转义字符,你熟练掌握了吗?
56 0
|
7月前
|
编译器 C语言
C语言的转义字符,八进制
C语言的转义字符,八进制