c语言char函数功能 c语言char函数的使用方法及实例( 二 )


charch = 'C';
'C' 的编码值 67 被存储于 32 位的内存单元中;不过ch仍然存储于 8 位的内存单元中 , 只是它的值变成了 67 。因此 , 我们可以定义形如 'good' 的古怪字符常量 。因为每个字符的编码值占用 8 位的内存单元,所以这个常量刚好可以存储于 32 位的内存单元 。然而 , 用这种字符常量初始化字符变量,或者给字符变量赋值的话 , 导致的结果是,字符变量只能得到字符常量的最后 8 位 。也就是说,以下代码
charch = 'good';
ch得到的是 'd' 的值 。
以后,在没有特殊说明的情况下,我们讨论的都是 ASCII 。
ASCII值
控制字符 ASCII值控制字符 ASCII值控制字符 ASCII值控制字符
0 NUL 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 3870 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 DC1 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 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 ETB 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 6092 \ 124 |
29 GS 61 = 93 ] 125 }
30 RS 6294 ^ 126 ~
31 US 63 ? 95 _ 127 DEL
NUL 空字符 VT 垂直制表 SYN 同步
SOH 标题开始 FF 走纸控制 ETB 信息组传送结束
STX 正文开始 CR 回车 CAN 作废
ETX 正文结束 SO 移位输出 EM 媒介结束 End of Medium
EOT 传输结束 SI 移位输入 SUB 换置
ENQ 询问字符 DLE Data Link Escape ESC Escape
ACK 确认 DC1 设备控制1 FS 文件分隔符
BEL 响铃 DC2 设备控制2 GS 组分隔符
BS 退格 DC3 设备控制3 RS 记录分隔符
HT 横向制表 DC4 设备控制4 US 单元分隔符
LF 换行 NAK 否定 DEL 删除
c语言中char的用法:不可打印字符(Nonprinting Characters)
有些 ASCII 字符是不可打印的 。例如退格、另起一行、警报等 。C 语言提供了两种方法来表示这种不可打印字符 。
第一种方法是使用 ASCII 编码 。例如,ASCII 编码中,7 用于表示警报:
char beep = 7;
第二种方法是使用特殊符号序列,也就是所谓的转义字符escape sequences) 。参见下表:(
转义字符含义
\a 警报( Alert (ANSI C) )
\b 退格(Backspace)
\f 换页(Form feed)
换行(Newline)
回车(Carriage return)
\t 水平制表符(Horizontal tab)
\v 垂直制表符(Vertical tab)
\\ 反斜杆( Backslash (\) )
\' 单引号( Single quote (') )
\" 双引号( Double quote (") )
\? 问号( Question mark (?) )
\0oo 八进制数( Octal value (o 代表一个八进制数字) )
\xhh十六进制数( Hexadecimal value (h 代表一个十六进制数字) )
给变量赋值的时候,转义字符必须使用单引号引住 。例如:
charnl = ' ';
下面我们详细学习每个转移字符的含义 。
\a(警报)是 ANSI C89 添加的,用于产生可听或者可视的警报 。\a 产生的效果取决于硬件 。一般来说,输出 \a 会产生鸣响 。但是在某些系统,输出 \a 不会产生任何效果,或者仅仅显示一个特殊字符 。标准明确指出,\a 不应该改变当前活跃位置(active position) 。所谓活跃位置,是指显示设备(显示器、打字机、打印机等等)显示下一个字符的位置 。以显示器为例,活跃位置就是指光标所处的位置,输出 \a 不会导致光标移动位置 。

推荐阅读