C语言字符

 

       在实际开发中,程序员很少用单个字符来表示一个完整的数据,字符的意义主要作为数组的时候可以形成一个字符串。在本章节中,我们更关心字符与整数之间的关系和ASCII码的相关知识。

       字符类型char,只能用单引号' '来包围,不能用双引号" "包围。而字符串只能用双引号" "包围,不能用单引号' '包围。

输出字符使用 %c,输出字符串使用 %s。

ASCII码表

       ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的电脑编码系统,用于显示现代英语和其他西欧语言,它是现今最通用的单字节编码系统。

       ASCII码规范于1967年第一次发布,它包含了33个控制字符(具有某些特殊功能但是无法显示的字符)和95个可显示字符。

1、ASCII 控制字符 (字符编码: 0-31)

       在ASCII码表中,前32个字符是不能用于显示的编码,而是用于控制外围设备。

十进制
DEC

符号
Symbol

中文解释
Description

0

NULL

空字符

1

SOH

标题开始

2

STX

正文开始

3

ETX

正文结束

4

EOT

传输结束

5

ENQ

询问

6

ACK

收到通知

7

BEL

8

BS

退格

9

HT

水平制表符

10

LF

换行键

11

VT

垂直制表符

12

FF

换页键

13

CR

回车键

14

SO

移出

15

SI

移入

16

DLE

数据链路转义

17

DC1

设备控制 1

18

DC2

设备控制 2

19

DC3

设备控制 3

20

DC4

设备控制 4

21

NAK

拒绝接收

22

SYN

同步空闲

23

ETB

传输块结束

24

CAN

取消

25

EM

介质中断

26

SUB

替换

27

ESC

换码符

28

FS

文件分隔符

29

GS

组分隔符

30

RS

记录分离符

31

US

单元分隔符

2、ASCII 可打印字符 (字符编码: 32-127)

       32~126(共95个)是字符:32是空格,其中48~57为0到9十个阿拉伯数字,65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。第127个字符表示的是键盘上的删除命令。

十进制
DEC

符号
Symbol

中文解释
Description

32

 

空格

33

!

感叹号

34

"

双引号

35

#

井号

36

$

美元符

37

%

百分号

38

&

39

'

单引号

40

(

左括号

41

)

右括号

42

*

星号

43

+

加号

44

,

逗号

45

-

连字号或减号

46

.

句点或小数点

47

/

斜杠

48

0

0

49

1

1

50

2

2

51

3

3

52

4

4

53

5

5

54

6

6

55

7

7

56

8

8

57

9

9

58

:

冒号

59

;

分号

60

<

小于

61

=

等号

62

>

大于

63

?

问号

64

@

电子邮件符号

65

A

大写字母 A

66

B

大写字母 B

67

C

大写字母 C

68

D

大写字母 D

69

E

大写字母 E

70

F

大写字母 F

71

G

大写字母 G

72

H

大写字母 H

73

I

大写字母 I

74

J

大写字母 J

75

K

大写字母 K

76

L

大写字母 L

77

M

大写字母 M

78

N

大写字母 N

79

O

大写字母 O

80

P

大写字母 P

81

Q

大写字母 Q

82

R

大写字母 R

83

S

大写字母 S

84

T

大写字母 T

85

U

大写字母 U

86

V

大写字母 V

87

W

大写字母 W

88

X

大写字母 X

89

Y

大写字母 Y

90

Z

大写字母 Z

91

[

左中括号

92

\

反斜杠

93

]

右中括号

94

^

音调符号

95

_

下划线

96

`

重音符

97

a

小写字母 a

98

b

小写字母 b

99

c

小写字母 c

100

d

小写字母 d

101

e

小写字母 e

102

f

小写字母 f

103

g

小写字母 g

104

h

小写字母 h

105

i

小写字母 i

106

j

小写字母 j

107

k

小写字母 k

108

l

小写字母 l

109

m

小写字母 m

110

n

小写字母 n

111

o

小写字母 o

112

p

小写字母 p

113

q

小写字母 q

114

r

小写字母 r

115

s

小写字母 s

116

t

小写字母 t

117

u

小写字母 u

118

v

小写字母 v

119

w

小写字母 w

120

x

小写字母 x

121

y

小写字母 y

122

z

小写字母 z

123

{

左大括号

124

|

垂直线

125

}

右大括号

126

~

波浪号

127

 

删除

3、转义字符

       对于 ASCII 编码,0~31(十进制)范围内的字符为控制字符,它们都是看不见的,不能在显示器上显示,甚至无法从键盘输入,只能用转义字符的形式来表示。

       不过,直接使用 ASCII 码记忆不方便,也不容易理解,所以,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:

转义字符

意义

ASCII码值

使用频率

\n

换行(LF) ,将当前位置移到下一行开头。

10

每天都用

\'

单引号。

39

常用

\"

双引号。

34

常用

\\

反斜杠。

92

常用

\r

回车(CR)

13

不常用

\t

水平制表(HT) 。

9

从未使用

\v

垂直制表(VT)。

11

从未使用

\a

响铃(BEL)。

7

从未使用

\b

退格(BS) ,将当前位置移到前一列。

8

从未使用

\f

换页(FF),将当前位置移到下页开头。

12

从未使用

       \n是最常用的转义字符,表示换行,让文本从下一行的开头输出,前面的章节中已经多次使用。

       \r\n用于windows平台DOS格式文件的换行。

       单引号、双引号、反斜杠是特殊的字符,不能直接表示。

       单引号是字符类型的开头和结尾,要使用\'表示。

       双引号是字符串的开头和结尾,要使用\"表示。

       反斜杠是转义字符的开头,要使用\\表示

 

       示例(book68.c)

       

       运行结果

       

 

字符就是整数

       字符和整数没有本质的区别。可以给 char 变量一个字符,也可以给它一个整数;反过来,可以给 int 变量一个整数,也可以给它一个字符。

       char 变量在内存中存储的是字符对应的 ASCII 码值。如果以 %c 输出,会根据 ASCII 码表转换成对应的字符,如果以 %d 输出,那么还是整数。

       int 变量在内存中存储的是整数本身,如果以 %c 输出时,也会根据 ASCII 码表转换成对应的字符。

       也就是说,ASCII 码表将整数和字符关联起来了。

       char类型占内存一个字节,signed char取值范围是-128-127,unsigned char取值范围是0-255。

       描述再准确一些,在char的取值范围内(0-255),字符和整数没有本质区别。

       示例(book67.c)

       

 

       运行结果

       

       在ASCII码表中,E、F、G、H 的值分别是 69、70、71、72。

常用的库函数

       以下是常用的字符函数,必须掌握。

       int isalpha(int ch);  若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0。

       int isalnum(int ch);  若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0。

       int isdigit(int ch);   若ch是数字('0'-'9')返回非0值,否则返回0。

       int islower(int ch);  若ch是小写字母('a'-'z')返回非0值,否则返回0。

       int isupper(int ch);  若ch是大写字母('A'-'Z')返回非0值,否则返回0。

       int tolower(int ch);  若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')。

       int toupper(int ch);  若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')

       以下是不常用的字符函数,极少使用,了解即可。

       int isascii(int ch);  若ch是字符(ASCII码中的0-127)返回非0值,否则返回0。

       int iscntrl(int ch);  若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回非0值,否则返回0。

       int isprint(int ch);  若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0。

       int ispunct(int ch);  若ch是标点字符(0x00-0x1F)返回非0值,否则返回0。

       int isspace(int ch);  若ch是空格(' '),水平制表符('/t'),回车符('/r'),走纸换行('/f'),垂直制表符('/v'),换行符('/n'),返回非0值,否则返回0。

       int isxdigit(int ch); 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值,否则返回0。

 

版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值