日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

C語(yǔ)言中的字符型數(shù)據(jù)與ASCII碼表_C 語(yǔ)言

作者:passxgx ? 更新時(shí)間: 2023-03-23 編程語(yǔ)言

1、字符型常量

字符型常量指單個(gè)字符,是用一對(duì)單引號(hào)及其所括起來(lái)的字符表示。

例如:‘A’、‘a(chǎn)’、‘0’、’$‘等都是字符型常量。

C語(yǔ)言的字符使用的就是ASCII字符集,總共有128個(gè),每個(gè)相應(yīng)的ASCII碼都表示一個(gè)字符:

(1)每一個(gè)字符都有唯一的次序值,即ASCII碼。

(2)數(shù)字’0’,‘1’,‘2’,…,‘9’、大寫(xiě)字母’A’,‘B’,‘C’,…,‘Z’、小寫(xiě)字母’a’,‘b’,‘c’,…,'z’的ASCII都是升序連續(xù)排列的。

注: 數(shù)字和數(shù)字字符不一樣的,帶單引號(hào)的是字符,例如:1是整型數(shù)字,而’1’是字符,其ASCII碼是49,即按整型輸出的話(huà)就是49,按字符型數(shù)據(jù)輸出就是1。

ASCII碼表:

符號(hào)(解釋?zhuān)?/th> 十進(jìn)制 十六進(jìn)制 符號(hào)(解釋?zhuān)?/th> 十進(jìn)制 十六進(jìn)制
NULL(空操作) 0 0x00 @ 64 0x40
SOH(標(biāo)題開(kāi)始) 1 0x01 A 65 0x41
STX(正文開(kāi)始) 2 0x02 B 66 0x42
ETX(正文結(jié)束) 3 0x03 C 67 0x43
EOT(傳輸結(jié)束) 4 0x04 D 68 0x44
ENQ(請(qǐng)求) 5 0x05 E 69 0x45
ACK(收到通知) 6 0x06 F 70 0x46
BEL(響鈴) 7 0x07 G 71 0x47
BS(退格) 8 0x08 H 72 0x48
HT(水平制表符) 9 0x09 I 73 0x49
LF(換行) 10 0x0A J 74 0x4A
VT(垂直制表符) 11 0x0B K 75 0x4B
FF(換頁(yè)) 12 0x0C L 76 0x4C
CR(回車(chē)) 13 0x0D M 77 0x4D
SO(不用切換) 14 0x0E N 78 0x4E
SI(啟用切換) 15 0x0F O 79 0x4F
DLE(數(shù)據(jù)鏈路轉(zhuǎn)義) 16 0x10 P 80 0x50
DC1(設(shè)備控制1) 17 0x11 Q 81 0x51
DC2(設(shè)備控制2) 18 0x12 R 82 0x52
DC3(設(shè)備控制3) 19 0x13 S 83 0x53
DC4(設(shè)備控制4) 20 0x14 T 84 0x54
NAK(拒絕接收) 21 0x15 U 85 0x55
SYN(同步空閑) 22 0x16 V 86 0x56
ETB(結(jié)束傳輸塊) 23 0x17 W 87 0x57
CAN(取消) 24 0x18 X 88 0x58
EM(媒介結(jié)束) 25 0x19 Y 89 0x59
SUB(代替) 26 0x1A Z 90 0x5A
ESC(換碼(溢出)) 27 0x1B [ 91 0x5B
FS(文件分隔符) 28 0x1C \ 92 0x5C
GS(分組符) 29 0x1D ] 93 0x5D
RS(記錄分隔符) 30 0x1E ^ 94 0x5E
US(單元分隔符) 31 0x1F _ 95 0x5F
(space)(空格) 32 0x20 ` 96 0x60
! 33 0x21 a 97 0x61
" 34 0x22 b 98 0x62
# 35 0x23 c 99 0x63
$ 36 0x24 d 100 0x64
% 37 0x25 e 101 0x65
& 38 0x26 f 102 0x66
39 0x27 g 103 0x67
( 40 0x28 h 104 0x68
) 41 0x29 i 105 0x69
* 42 0x2A j 106 0x6A
+ 43 0x2B k 107 0x6B
, 44 0x2C l 108 0x6C
- 45 0x2D m 109 0x6D
. 46 0x2E n 110 0x6E
/ 47 0x2F o 111 0x6F
0 48 0x30 p 112 0x70
1 49 0x31 q 113 0x71
2 50 0x32 r 114 0x72
3 51 0x33 s 115 0x73
4 52 0x32 t 116 0x74
5 53 0x35 u 117 0x75
6 54 0x36 v 118 0x76
7 55 0x37 w 119 0x77
8 56 0x38 x 120 0x78
9 57 0x39 y 121 0x79
: 58 0x3A z 122 0x7A
; 59 0x3B { 123 0x7B
< 60 0x3C | 124 0x7C
= 61 0x3D } 125 0x7D
> 62 0x3E ~ 126 0x7E
? 63 0x3F DEL(刪除) 127 0x7F

在C語(yǔ)言中,所使用的字符被一一映射到一張表中,這張表被稱(chēng)為ASCII碼表。

由于標(biāo)準(zhǔn) ASCII 字符集字符數(shù)目有限,無(wú)法滿(mǎn)足要求。為此,國(guó)際標(biāo)準(zhǔn)化組織又制定了 ISO2022 標(biāo)準(zhǔn),它規(guī)定了在保持與 ISO646 兼容的前提下將 ASCII 字符集擴(kuò)充為 8 位代碼的統(tǒng)一方法。 ISO 1陸續(xù)制定了一批適用于不同地區(qū)的擴(kuò)充 ASCII 字符集,每種擴(kuò)充 ASCII 字符集分別可以擴(kuò)充 128 個(gè)字符,這些擴(kuò)充字符的編碼均為高位為 1 的 8 位代碼,稱(chēng)為擴(kuò)展 ASCII 碼。

但由于擴(kuò)展ASCII不再是國(guó)際標(biāo)準(zhǔn),故不在此展示。

十進(jìn)制碼值Dec 縮寫(xiě)/字符 二進(jìn)制碼值Bin 八進(jìn)制碼值Oct 十六進(jìn)制碼值Hex
0 NULL 空字符 0000 0000 00 0x0
1 SOH 標(biāo)題開(kāi)始 0000 0001 01 0x1
2 STX 正文開(kāi)始 0000 0010 02 0x2
3 ETX 正文介紹 0000 0011 03 0x3
4 EOT 傳輸結(jié)束 0000 0100 04 0x4
5 ENQ 請(qǐng)求 0000 0101 05 0x5
6 ACK 收到通知 0000 0110 06 0x6
7 BEL 響鈴 0000 0111 07 0x7
8 BS 退格 0000 1000 010 0x8
9 HT 水平制表符 0000 1001 011 0x9
10 LF 換行鍵 0000 1010 012 0xA
11 VT 垂直制表符 0000 1011 013 0xB
12 FF 換頁(yè)鍵 0000 1100 014 0xC
13 CR 回車(chē)鍵 0000 1101 015 0xD
14 SO 不用切換 0000 1110 016 0xE
15 SI 啟用切換 0000 1111 017 0xF
16 DLE 數(shù)據(jù)鏈路轉(zhuǎn)義 0001 0000 020 0x10
17 DC1 設(shè)備控制1 0001 0001 021 0x11
18 DC2 設(shè)備控制2 0001 0010 022 0x12
19 DC3 設(shè)備控制3 0001 0011 023 0x13
20 DC4 設(shè)備控制4 0001 0100 024 0x14
21 NAK 拒絕接受 0001 0101 025 0x15
22 SYN 同步空閑 0001 0110 026 0x16
23 ETB 結(jié)束傳輸塊 0001 0111 027 0x17
24 CAN 取消 0001 1000 030 0x18
25 EM 媒介結(jié)束 0001 1001 031 0x19
26 SUB 代替 0001 1010 032 0x1A
27 ESC 換碼(溢出) 0001 1011 033 0x1B
28 FS 文件分隔符 0001 1100 034 0x1C
29 GS 分組符 0001 1101 035 0x1D
30 RS 記錄分隔符 0001 1110 036 0x1E
31 US 單元分隔符 0001 1111 037 0x1F
32 (space) 空格 0010 0000 040 0x20
33 ! 嘆號(hào) 0010 0001 041 0x21
34 " 雙引號(hào) 0010 0010 042 0x22
35 # 井號(hào) 0010 0011 043 0x23
36 $ 美元符 0010 0100 044 0x24
37 % 百分號(hào) 0010 0101 045 0x25
38 & 和號(hào) 0010 0110 046 0x26
39 ’ 閉單引號(hào) 0010 0111 047 0x27
40 ( 開(kāi)括號(hào) 0010 1000 050 0x28
41 ) 閉括號(hào) 0010 1001 051 0x29
42 * 星號(hào) 0010 1010 052 0x2A
43 + 加號(hào) 0010 1011 053 0x2B
44 , 逗號(hào) 0010 1100 054 0x2C
45 - 減號(hào)/破折號(hào) 0010 1101 055 0x2D
46 . 句號(hào) 0010 1110 056 0x2E
47 / 斜杠 0010 1111 057 0x2F
48 數(shù)字0 0011 0000 060 0x30
49 數(shù)字1 0011 0001 061 0x31
50 數(shù)字2 0011 0010 062 0x32
51 數(shù)字3 0011 0011 063 0x33
52 數(shù)字4 0011 0100 064 0x34
53 數(shù)字5 0011 0101 065 0x35
54 數(shù)字6 0011 0110 066 0x36
55 數(shù)字7 0011 0111 067 0x37
56 數(shù)字8 0011 1000 070 0x38
57 數(shù)字9 0011 1001 071 0x39
58 : 冒號(hào) 0011 1010 072 0x3A
59 ; 分號(hào) 0011 1011 073 0x3B
60 < 小于 0011 1100 074 0x3C
61 = 等于 0011 1101 075 0x3D
62 > 大于 0011 1110 076 0x3E
63 ? 問(wèn)號(hào) 0011 1111 077 0x3F
64 @ 電子郵件符號(hào) 0100 0000 0100 0x40
65 大寫(xiě)字母A 0100 0001 0101 0x41
66 大寫(xiě)字母B 0100 0010 0102 0x42
67 大寫(xiě)字母C 0100 0011 0103 0x43
68 大寫(xiě)字母D 0100 0100 0104 0x44
69 大寫(xiě)字母E 0100 0101 0105 0x45
70 大寫(xiě)字母F 0100 0110 0106 0x46
71 大寫(xiě)字母G 0100 0111 0107 0x47
72 大寫(xiě)字母H 0100 1000 0110 0x48
73 大寫(xiě)字母I 0100 1001 0111 0x49
74 大寫(xiě)字母J 0100 1010 0112 0x4A
75 大寫(xiě)字母K 0100 1011 0113 0x4B
76 大寫(xiě)字母L 0100 1100 0114 0x4C
77 大寫(xiě)字母M 0100 1101 0115 0x4D
78 大寫(xiě)字母N 0100 1110 0116 0x4E
79 大寫(xiě)字母O 0100 1111 0117 0x4F
80 大寫(xiě)字母P 0101 0000 0120 0x50
81 大寫(xiě)字母Q 0101 0001 0121 0x51
82 大寫(xiě)字母R 0101 0010 0122 0x52
83 大寫(xiě)字母S 0101 0011 0123 0x53
84 大寫(xiě)字母T 0101 0100 0124 0x54
85 大寫(xiě)字母U 0101 0101 0125 0x55
86 大寫(xiě)字母V 0101 0110 0126 0x56
87 大寫(xiě)字母W 0101 0111 0127 0x57
88 大寫(xiě)字母X 0101 1000 0130 0x58
89 大寫(xiě)字母Y 0101 1001 0131 0x59
90 大寫(xiě)字母Z 0101 1010 0132 0x5A
91 [ 開(kāi)方括號(hào) 0101 1011 0133 0x5B
92 \ 反斜杠 0101 1100 0134 0x5C
93 ] 閉方括號(hào) 0101 1101 0135 0x5D
94 ^ 脫字節(jié) 0101 1110 0136 0x5E
95 _ 下劃線(xiàn) 0101 1111 0137 0x5F
96 ’ 開(kāi)單引號(hào) 0110 0000 0140 0x60
97 小寫(xiě)字母a 0110 0001 0141 0x61
98 小寫(xiě)字母b 0110 0010 0142 0x62
99 小寫(xiě)字母c 0110 0011 0143 0x63
100 小寫(xiě)字母d 0110 0100 0144 0x64
101 小寫(xiě)字母e 0110 0101 0145 0x65
102 小寫(xiě)字母f 0110 0110 0146 0x66
103 小寫(xiě)字母g 0110 0111 0147 0x67
104 小寫(xiě)字母h 0110 1000 0150 0x68
105 小寫(xiě)字母i 0110 1001 0151 0x69
106 小寫(xiě)字母j 0110 1010 0152 0x6A
107 小寫(xiě)字母k 0110 1011 0153 0x6B
108 小寫(xiě)字母l 0110 1100 0154 0x6C
109 小寫(xiě)字母m 0110 1101 0155 0x6D
110 小寫(xiě)字母n 0110 1110 0156 0x6E
111 小寫(xiě)字母o 0110 1111 0157 0x6F
112 小寫(xiě)字母p 0111 0000 0160 0x70
113 小寫(xiě)字母q 0111 0001 0161 0x71
114 小寫(xiě)字母r 0111 0010 0162 0x72
115 小寫(xiě)字母s 0111 0011 0163 0x73
116 小寫(xiě)字母t 0111 0100 0164 0x74
117 小寫(xiě)字母u 0111 0101 0165 0x75
118 小寫(xiě)字母v 0111 0110 0166 0x76
119 小寫(xiě)字母w 0111 0111 0167 0x77
120 小寫(xiě)字母x 0111 1000 0170 0x78
121 小寫(xiě)字母y 0111 1001 0171 0x79
122 小寫(xiě)字母z 0111 1010 0172 0x7A
123 { 開(kāi)花括號(hào) 0111 1011 0173 0x7B
124 丨垂線(xiàn) 0111 1100 0174 0x7C
125 } 閉花括號(hào) 0111 1101 0175 0x7D
126 ~ 波浪號(hào) 0111 1110 0176 0x7E
127 DEL 刪除 0111 1111 0177 0x7F

2、字符型變量

用char定義的變量為字符型變量。

例如:char op; 定義了一個(gè)字符型變量op,其數(shù)據(jù)類(lèi)型為char型,即字符型數(shù)據(jù)。

可以對(duì)其進(jìn)行賦值,例如op='*'就是將字符型常量’*‘賦值給變量op。

字符型變量在計(jì)算機(jī)中是按照ASCII碼的值來(lái)存儲(chǔ)的,可以和整形數(shù)據(jù)進(jìn)行運(yùn)算,其運(yùn)算規(guī)格類(lèi)似,例如:op = '*'+1;,那么op按字符型數(shù)據(jù)輸出就是’+’,按整型數(shù)據(jù)輸出就是43。

3、字符型數(shù)據(jù)的輸入輸出

(1)scanf()和printf()函數(shù)輸入輸出字符

scanf()和printf()函數(shù)進(jìn)行字符型數(shù)據(jù)的輸入輸出和整型浮點(diǎn)型的處理方式完全一樣,只是格式控制字符串中相應(yīng)的格式控制說(shuō)明為%c

(2)字符輸入函數(shù)getchar()

getchar()函數(shù)可以從鍵盤(pán)輸入一個(gè)字符。其一般用法為:

char ch;ch = getchar();

這句話(huà)就是從鍵盤(pán)輸入一個(gè)字符,并將其賦給變量ch。

(3)字符輸出函數(shù)putchar()

putchar()函數(shù)是輸出一個(gè)字符。其一般用法為:

putchar(輸出參數(shù));

輸出參數(shù)是字符型變量或者字符型常量。

注: 使用getchar()函數(shù)和putchar()函數(shù)同樣需要先包含頭文件#include <stdio.h>

函數(shù)getchar()和putchar()分別只能輸入和輸出一個(gè)字符,若要處理多個(gè)字符的輸出和輸出,那么一般需要采用循環(huán)的方式多次調(diào)用該函數(shù)。

例如下面的代碼為輸入8個(gè)字符,然后將這8個(gè)字符再輸出,每?jī)蓚€(gè)字符中間添加一個(gè)’-’。

#include <stdio.h>

int main(void)
{
	char ch
	int first = 1, k;	/*first的值表示將要處理的是否為輸入的第一個(gè)字符*/
	printf("Enter 8 characters:");
	for (k=1; k<=8; k++) {
		ch = getchar();	/*變量ch接收從鍵盤(pán)輸入的一個(gè)字符*/
		if (first == 1) {
			putchar(ch);	/*輸出存放在變量ch中的字符*/
			first = 0;		/*處理完第1個(gè)字符,清楚標(biāo)志位*/
		} else {	/*處理第2個(gè)及以后的字符*/
			putchar('-'); /*輸出字符常量'-'*/
			putchar(ch);  /*輸出存放在變量ch中的字符*/
		}
	}
}

運(yùn)行結(jié)果:

Enter 8 characters:gorgeous
g-o-r-g-e-o-u-s

例:四則運(yùn)算

求解簡(jiǎn)單的四則運(yùn)算表達(dá)式。輸入一個(gè)形如 "操作數(shù)?運(yùn)算符?操作數(shù)"的四則運(yùn)算表達(dá)式,輸出運(yùn)算結(jié)果,要求對(duì)除數(shù)0的情況做特別處理。

#include <stdio.h>

int main(void)
{
	double value1, value2;
	char op;
	
	printf("Type in an expression:");	
	scanf("%lf%c%lf", &value1, &op, &value2);
	if (op == '+'){							/*判斷運(yùn)算符是否為'+'*/
		printf("=%.2f\n", value1+value2);	/*對(duì)操作數(shù)做加法操作*/
	} else if (op == '-'){					/*否則判斷運(yùn)算符是否為'-'*/
		printf("=%.2f\n", value1-value2);
	} else if (op == '*'){					/*否則判斷運(yùn)算符是否為'*'*/
		printf("=%.2f\n", value1*value2);
	} else if (op == '/'){					/*否則判斷運(yùn)算符是否為'/'*/
		if (value2 != 0){
			printf("=%.2f\n", value1/value2);
		} else {							/*對(duì)除數(shù)為0作特殊處理*/
			printf("Divisior can not be 0!\n");
		}
	} else {
		printf ("Unknown operator!\n");		/*運(yùn)算符輸出錯(cuò)誤*/
	}

	return 0;
}

運(yùn)行結(jié)果:

Type in an expression:8.65+3.29
=11.94

Type in an expression:76.9/0
Divisior can not be 0!

Type in an expression:47.2 - 76
Unknown operator!

注: 此處一定要注意,這里的操作數(shù)和運(yùn)算符之間必須連續(xù)輸入,兩者之間不能有空格。

這是因?yàn)榭崭褚彩且粋€(gè)字符,它會(huì)占據(jù)運(yùn)算符的位置,在程序中就會(huì)是一個(gè)無(wú)法識(shí)別的運(yùn)算符。

如上述運(yùn)行結(jié)果第三個(gè)。

總結(jié)

原文鏈接:https://blog.csdn.net/passxgx/article/details/123793691

欄目分類(lèi)
最近更新