字符型
数据类型 |
子类型 |
修饰符 |
简写 |
长度 |
数值范围 |
类型变量定义 |
类型常量 |
字符型 |
有符号字符 |
char |
char |
1字节 |
-128~127 |
char a; |
1.单引号括起来字符,如'a', '9', 'Z' 2.十进制ASCII码值, 例如85表示大写字母'U' 3.十六进制ASCII码值,以0x开头,后面接数字0-9或字母a-f;例如0x5d表示']' 4.八进制ASCII码值,以0开头,后面接数字0-7;例如0102表示大写字母'B' 5.转义字符,以\开头,后面接字母;例如'\n'表示换行 6.转义字符加十六进制ASCII码值,以\x开头,后面接数字0-9或字母a-f;例如回车字符的表示为'\x0d' 7.转义字符加八进制ASCII码值,以\0开头,后面接数字0-7;例如回车字符的表示'\015' |
无符号字符 |
unsigned char |
unsigned char |
1字节 |
0~255 |
unsigned char a; |
字符型与整型的关系
字符在计算机中以其ASCII码方式表示, 在Turbo C语言中, 字符型数据在操作时将按整型数处理, 如果某个变量定义成char, 则表明该变量是有符号的, 即它将转换成有符号的整型数。
Turbo C中规定对ASCII码值大于0x80的字符将被认为是负数。例如ASCII 值为0x8c的字符, 定义成char时,被转换成十六进制的整数0xff8c 。 这是因当ASCII码值大于0x80时, 该字节的最高位为1, 计算机会认为该数为负数,对于0x8c表示的数实际上是-74(8c的各位取反再加1), 而-74 转换成两字节整型数并在计算机中表示时就是0xff8c( 对0074 各位取反再加1)。因此只有定义为unsigned char 0x8c转换成整型数时才是8c。这一点在处理大于0x80的ASCII码字符时(例如汉字码)要特别注意。一般汉字均定义为unsigned char(在以后的程序中会经常碰到)。
字符串的表示
字符串用一个字符型数组来表示。 例如: char str[10]; 计算机在编译时, 将留出连续10个字符的空间, 即str[0]到str[9]共10个变量, 但只有前9个供用户使用。第10个str[9]用来存放字符串终止符NULL即"\0", 但终止符是编编译程序自动加上的, 这一点应特别注意。
对于字符串常量, 一般用双引号括起来表示, 如"Hello"。
特殊字符的表示
一些不能用符号表示的控制符, 可以用三种方式表示
1> 用ASCII码值来表示, 如十进制数10 表示换行, 十六进制数0x0d表示回车, 八进制数033表示Esc
2> 用转义字符表示,如'\n'表示回车
3> 用转义字符和ASCII码共同来表示,如'\033'表示Esc
回车的各种表示方法
ASCII
|
控制字符
|
说明
|
ASCII码
|
转义字符
|
转移字符加ASCII码
|
|
13
|
CR
|
回车
|
十进制
|
八进制
|
十六进制
|
|
八进制
|
十六进制
|
|
13
|
015
|
0x0d
|
'\n'
|
'\015'
|
'\x0d'
|
|
十进制ASCII码表
ASCII值
|
控制字符
|
说明
|
转义字符
|
ASCII值
|
控制字符
|
说明
|
转义字符
|
ASCII值
|
控制字符
|
说明
|
转义字符
|
ASCII值
|
控制字符
|
说明
|
转义字符
|
0
|
NULL
|
空
|
\0
|
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
|
报警
|
\a
|
39
|
'
|
|
\'
|
71
|
G
|
|
|
103
|
g
|
|
|
8
|
BS
|
退一格
|
\b
|
40
|
(
|
|
|
72
|
H
|
|
|
104
|
h
|
|
|
9
|
HT
|
横向列表
|
\t
|
41
|
)
|
|
|
73
|
I
|
|
|
105
|
i
|
|
|
10
|
LF
|
换行
|
\n
|
42
|
*
|
|
|
74
|
J
|
|
|
106
|
j
|
|
|
11
|
VT
|
垂直制表
|
\v
|
43
|
+
|
|
|
75
|
K
|
|
|
107
|
k
|
|
|
12
|
FF
|
走纸控制
|
\f
|
44
|
,
|
|
|
76
|
L
|
|
|
108
|
l
|
|
|
13
|
CR
|
回车
|
\r
|
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
|
设备控制1
|
|
49
|
1
|
|
|
81
|
Q
|
|
|
113
|
q
|
|
|
18
|
DC2
|
设备控制2
|
|
50
|
2
|
|
|
82
|
R
|
|
|
114
|
r
|
|
|
19
|
DC3
|
设备控制3
|
|
51
|
3
|
|
|
83
|
X
|
|
|
115
|
s
|
|
|
20
|
DC4
|
设备控制4
|
|
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
|
删除
|
|
|