C语言常用转义字符表 和 ASCII码表完整版

 

C语言常用转义字符表 和 ASCII码表完整版

ASCII

控制字符

ASCII

控制字符

ASCII

控制字符

ASCII

控制字符

0

NUT

32

(space)

64

@

96

1

SOH

33

65

A

97

a

2

STX

34

66

B

98

b

3

ETX

35

#

67

C

99

c

4

EOT

36

$

68

D

100

d

5

ENQ

37

%

69

E

101

e

6

ACK

38

&

70

F

102

f

7

BEL

39

,

71

G

103

g

8

BS

40

(

72

H

104

h

9

HT

41

)

73

I

105

i

10

LF

42

*

74

J

106

j

11

VT

43

+

75

K

107

k

12

FF

44

,

76

L

108

l

13

CR

45

-

77

M

109

m

14

SO

46

.

78

N

110

n

15

SI

47

/

79

O

111

o

16

DLE

48

0

80

P

112

p

17

DCI

49

1

81

Q

113

q

18

DC2

50

2

82

R

114

r

19

DC3

51

3

83

X

115

s

20

DC4

52

4

84

T

116

t

21

NAK

53

5

85

U

117

u

22

SYN

54

6

86

V

118

v

23

TB

55

7

87

W

119

w

24

CAN

56

8

88

X

120

x

25

EM

57

9

89

Y

121

y

26

SUB

58

:

90

Z

122

z

27

ESC

59

;

91

[

123

{

28

FS

60

<

92

/

124

|

29

GS

61

=

93

]

125

}

30

RS

62

>

94

^

126

~

31

US

63

?

95

127

DEL

转义字符

含义

ASCII码(16/10进制)

\o

空字符(NULL)

00H/0

\n

换行符(LF)

0AH/10

\r

回车符(CR)

0DH/13

\t

水平制表符(HT)

09H/9

\v

垂直制表(VT)

0B/11

\a

响铃(BEL)

07/7

\b

退格符(BS)

08H/8

\f

换页符(FF)

0CH/12

\’

单引号

27H/39

\”

双引号

22H/34

\\

反斜杠

5CH/92

\?

问号字符

3F/63

\ddd

任意字符

三位八进制

\xhh

任意字符

二位十六进制

 

  字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上反斜杠。
   在C程序中使用转义字符\ d d d或者\ x h h可以方便灵活地表示任意字符。\ d d d为斜杠后面跟三位八进制数,该三位八进制数的值即为对应的八进制A S C I I码值。\ x后面跟两位十六进制数,该两位十六进制数为对应字符的十六进制A S C I I码值。

使用转义字符时需要注意以下问题:
1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符。
2) \v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
3)在C程序中,使用不可打印字符时,通常用转义字符表示


注:
1,\v垂直制表和\f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。
2,\n其实应该叫回车换行。换行只是换一行,不改变光标的横坐标;回车只是回到行首,不改变光标的纵坐标。
3,\t光标向前移动四格或八格,可以在编译器里设置
4,\'在字符里(即单引号里)使用。在字符串里(即双引号里)不需要,只要用'即可。
5,\?其实不必要。只要用?就可以了(在windows VC6和tc2中验证)。

 

 

<think>好的,我需要帮助用户编写一个用C语言打印基本ASCII码表的程序。首先,我得确定基本ASCII码的范围。基本ASCII码是0到127,对吗?嗯,没错,7位就能表示,总共128个字符。 接下来,用户需要打印这些字符的信息。我应该考虑如何组织输出。通常ASCII码表会显示十进制值、十六进制值、八进制值以及对应的字符。所以程序需要遍历0到127的每个字符,并输出这些信息。 然后,格式排版很重要。要确保各列对齐,可能需要使用printf的格式化输出,比如%-8d这样的格式说明符来控制宽度对齐方式。例如,十进制数可以左对齐,占8位宽度,十六进制八进制同样处理。字符部分可能需要处理不可见字符的情况,比如控制字符,这时候显示空格或者其他标识,比如“控制字符”。 接下来,考虑特殊字符的处理。ASCII码中0到31以及127是控制字符,不可打印。所以在输出字符时,这些位置应该显示为空格或者特定的提示,比如“N/A”。同时,空格字符(32)虽然可打印,但显示出来可能不明显,可以考虑特殊处理,不过通常还是直接显示空格,用户会理解。 然后,程序的结构大致是循环从0到127,每次循环输出一行信息。在循环体内,对每个ASCII值判断是否是控制字符,如果是,字符列显示控制字符,否则显示字符本身。需要注意转义字符的处理,比如换行符可能会影响输出格式,所以当字符是控制字符时,直接输出空格或者其他标识更安全。 测试一下,比如当i=65时,应该显示'A',而i=10(换行符)则显示控制字符。确保格式化字符串正确,各列对齐。可能需要在开头打印表头,比如“十进制 十六进制 八进制 字符”之类的,方便阅读。 代码的大致框架会是: - 打印表头 - for循环从0到127 - 计算十六进制八进制的值 - 判断字符是否可打印 - 使用printf格式化输出各列 然后检查是否有语法错误,比如变量类型是否正确,格式字符串是否匹配。例如,使用%02X来显示两位十六进制,前面补零。八进制可能用%03o来显示三位。 另外,可能需要注意某些环境中的字符显示问题,比如在Windows命令行中,某些字符可能无法正确显示,但程序本身逻辑是正确的。 最后,将代码写出来,并测试运行,查看输出是否符合预期,各列是否对齐,特殊字符是否处理得当。</think>以下是分步实现的C语言程序,用于打印基本ASCII码表(0-127): ```c #include <stdio.h> int main() { // 打印表头 printf("%-8s%-8s%-8s%-8s\n", "十进制", "十六进制", "八进制", "字符"); printf("=======================================\n"); // 遍历ASCII码0-127 for (int i = 0; i < 128; i++) { // 判断是否为控制字符(0-31127) if (i <= 31 || i == 127) { printf("%-8d0x%-6X0%-7o控制字符\n", i, i, i); } else { // 特殊处理空格字符 if (i == 32) { printf("%-8d0x%-6X0%-7o空格\n", i, i, i); } else { printf("%-8d0x%-6X0%-7o%c\n", i, i, i, i); } } } return 0; } ``` 程序解析: 1. **表头打印** - 使用`%-8s`格式控制实现左对齐的列标题 - 显示四列:十进制、十六进制、八进制、字符 2. **循环结构** - `for`循环遍历0到127的整数 - 每次循环处理一个ASCII码值 3. **控制字符处理** - ASCII码0-31127为控制字符 - 显示"控制字符"标识,避免输出不可见字符 4. **特殊字符处理** - 单独处理空格字符(ASCII 32) - 明确标注"空格"以提高可读性 5. **格式控制** - `%-8d`:左对齐的十进制数(8字符宽度) - `0x%-6X`:带0x前缀的十六进制数(6字符宽度) - `0%-7o`:带0前缀的八进制数(7字符宽度) - `%c`:显示ASCII字符本身 执行结果示例(部分): ``` 十进制 十六进制 八进制 字符 ======================================= 0 0x00 00 控制字符 1 0x01 01 控制字符 ... 32 0x20 040 空格 33 0x21 041 ! ... 65 0x41 0101 A ... 127 0x7F 0177 控制字符 ``` 注意事项: 1. 控制字符不会实际显示为图形字符 2. 八进制显示包含前导0(如040表示八进制40) 3. 十六进制显示包含0x前缀 4. 实际显示效果可能因终端设置有所不同 5. 程序兼容C89/C99/C11标准 这个程序可以帮助你: - 理解ASCII码的数值表示 - 学习数值格式转换 - 掌握控制字符的识别 - 练习格式化输出控制 可以尝试修改格式字符串(如调整列宽)观察输出变化,或添加颜色显示等扩展功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值