在 3.3.1變數型態 裡,提過
型態 | 中文意思 | 英文字義 | 可儲存的資料 |
---|---|---|---|
char |
字元(半形字) | Character | 'a' 、'R' 、'1' 、'@' 、'*' ... |
以下會較詳細介紹C++是如何以 char 儲存字元。
一個 char變數 就是儲存 ASCII 裡的一個整數編號( 0 ~ 127 )
其中分成 (1)可顯示 (2)不可顯示 兩類
編號32~126 一個整數編號 會對應到 一個半形字,例如
整數編號 | 半形字 |
---|---|
35 | '#' |
49 | '1' |
65 | 'A' |
編號0~31、127 一個整數編號 會對應到 一個控制字元,例如
整數編號 | 控制字元 | 意義 |
---|---|---|
0 | '\0' | 空字元(NULL) |
9 | '\t' | 定位字元(TAB) |
10 | '\n' | 換行字元(ENTER) |
當C++把這些整數解讀成 char 輸出,就會執行該 控制字元 的功能
控制字元前面有個\
的理由會在下一節 跳脫字元 中說明
(char)整數
#include<iostream>
using namespace std;
int main()
{
int i;
for( i=32 ; i<=126 ; i++ )
{
cout << i << " " << (char)i << endl;
}
return 0;
}
32
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
...(省略)
同樣的,你也可以把字元轉成整數
(int)字元
#include<iostream>
using namespace std;
int main()
{
cout << (int)'0' << endl;
cout << (int)'A' << endl;
cout << (int)'a' << endl;
cout << endl;
cout << (int)'\0' << endl;
cout << (int)'\t' << endl;
cout << (int)'\n' << endl;
return 0;
}
48
65
97
0
9
10
#include<iostream>
using namespace std;
int main()
{
char c;
while( cin >> c )
{
if( 'a' <= c and c <= 'z' )
{
cout << "是小寫字母" << endl;
}
if( 'A' <= c and c <= 'Z' )
{
cout << "是大寫字母" << endl;
}
if( '0' <= c and c <= '9' )
{
cout << "是數字" << endl;
}
}
return 0;
}
w
S
7
是小寫字母
是大寫字母
是數字