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<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;
}