C语言中字符型(char)的简单使用
刚接触C语言不久,在这记录下自己的一些学习心得。今天主要是在敲代码时遇到了一个小问题,如图:
应该是个比较简单的编程题。在我的想法中,应该使用循环逐个读入由A至Z的每个字母,因此要用char定义字符。先前也简单了解过char的用法,也仅局限于单个字符的用法,大概只知道以下几种:
1.char的简介
(1)字符型(char)用于储存字符(character),如英文字母、数字或标点。
简单来说有以下几种形式:
1. char a='a';
2. char b='1';
3. char c='&';
4. char d=' ';
需要注意的是char定义的字符要用单引号‘’将其包围。(另外字符串需要用双引号“”包围,在此不多加阐述)
(2)单个字符的输入与输出。
通常,我们用char定义的字符型变量可以用以下形式进行输入:
char ch;
1.ch = getchar();
2.scanf("%c",&ch);
同样的,输出的格式我们也有:
1.ch = putchar();
2.printf("%c",ch);
除此外,还有字符串的输入输出,在此不多加阐述。(主要是没学…)
但仅依靠这些我也只能解决一些简单的问题,完全不足以实际进行应用。通过简单的查阅资料,我了解到了关于char的进一步知识。
2.char的定义
(1)C 语言中保证 char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为 char 的位数,所以一个字节可能是 16 位,也可能是 32 位,而不仅仅限于 8 位。
char是分配1字节,存储的是ASCII码,A:65,a:97。
(2)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
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
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
如上图所示,我们能够了解到,在C语言中char所定义的字符数字分别对应的符号了,于是就有:
1.char a=48;
2.char b=65;
3.char c=97;
a == '0';b == 'A';c == 'a';
3.char的简单应用
于是这就能够解决一开始所讲的问题了:定义字符型变量,并赋值65依次+1至90.即可逐个输入A至Z的全部字母.如下所示
#include
int main(void)
{
int n, i, t;
scanf("%d", &n);//给出一个正整数n
char ch = 65; //定义字符变量ch,此时ch = 'A'
for (i = n; i >= 1; i--)
{
for (t = 1; t <= i; t++)
{
printf("%c ", ch);
ch++;
if (ch > 90)//判断ch是否到 'Z'
break;
}
printf("\n");
if (ch > 90)
break;
}
return 0;
}
这是本人第一次写博客,也是一次尝试,经验难免不够。如果有不足或错误的地方希望能够批评指正。(当然估计也没人看)