C语言中字符型(char)的简单使用

刚接触C语言不久,在这记录下自己的一些学习心得。今天主要是在敲代码时遇到了一个小问题,如图:

c语言的char相当于java c语言char有什么用_控制字符

应该是个比较简单的编程题。在我的想法中,应该使用循环逐个读入由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<stdio.h>
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;
}