上節課提到了三種變數型別:int
,double
,char
。這節課來講一下字元。
我們已經知道,在計算機中所有資料都是用二進位制的形式儲存的,字元也不例外。為了讓二進位制數字能表示字元,我們需要給每個字元編號,用編號來表示這個字元。ascii碼就是一種編碼方式。
如上圖所示,標準ascii碼有128個字元(7位二進位制數)。但並不是每個字元都是可見的,第0~31個和第127個字元是控制字元或通訊字元,表達特殊的含義,例如nul(空)、bel(響鈴)、ack(確認)等。
在c++中,用單引號''
表示字元,例如'a'
表示字元a,'6'
表示字元6.
char c =
'a';
//定義了乙個字元變數c,它的值是大寫字母a
c ='b'
;//重新將c賦值為小寫字母b
cout << c;
//螢幕顯示b,注意區分變數名和變數的值
看這樣一段**
char c =
'a';
int d, ans;
d =8
;ans = c + d;
cout << ans;
直觀感覺這段**會報錯,因為乙個整數和乙個字元是不能相加的。但是在執行的時候,發生了自動型別轉換,編譯器會自動把字元型別的'a'
轉化成整數型別的97(即a對應的ascii碼),然後計算97+8=105.
字元可以轉化為整數,0~127的整數也可以轉化成字元。
char c =97;
int d =
'a';
cout <<
"c = "
<< c << endl;
//輸出 c = a
cout <<
"d = "
<< d << endl;
//輸出 d = 97
這個例子中,c
和d
儲存的內容可以認為是一樣的,都是數字97,只不過型別不一樣,所以兩者顯示在螢幕上效果不同。所以字元和整數一定意義上是互相對應的。
如果想使用單引號'
這個字元怎麼辦呢?按照剛才的說法應該把它放到一對單引號中間。
char c =
''';
執行一下發現出錯了,這是因為單引號是乙個特殊的字元,連續的三個單引號出現,編譯器會把前兩個看成一堆,第三個就成了電燈泡,十分尷尬。解決方案是字元前面加乙個轉義符號\
(反斜線)。它可以使它後面的乙個特殊字元變回原本的含義。就像這樣
char c =
'\''
;cout << c;
//輸出'
斜線後面的單引號變成了乙個普通的字元。
那麼如果需要反斜線這個字元怎麼辦呢?那就要用連續的兩個反斜線\\
,前面的是轉義符號,它把後面的反斜線變成了普通字元。
轉義字元還可以用來表示鍵盤打不出來的控制字元,例如\n
表示換行(ascii碼010),\0
表示null(ascii碼000)等。
char c1 =
'\\'
;char c2 =
'\n'
;char c3 =
'\;'
;cout << c1 << c2 << c3;
這段**的輸出是
\
;
先來說說cout
,它可以把東西顯示在螢幕上,資料從記憶體流向外部裝置(這裡是顯示器)的過程我們叫做輸出。要使用cout
,一定要在檔案最前面加上最前面那兩行套話。
#include
using
namespace std;
字串在後面會詳細講,這裡只說一下如何在螢幕上顯示字串。字串就是若干個字元,在c++中用雙引號表示。例如"abcdefg"
就是乙個字串。輸出字串很簡單,直接懟到cout上即可。
cout <<
"hello world!"
;
這就是第一課中的那行**。
字串中也可以使用轉義字元:"hello\nworld!"
,自己試一下輸出它會發生什麼。
在計算機中,字元通過編碼來儲存。ascii碼是很常用的編碼方式。
c++中用單引號表示字元,雙引號表示字串。
字元和整數可以相互轉化,靈活使用。
轉義字元可以將特殊字元變成普通字元('\''
),也可以將普通字元變成特殊的控制字元('\n'
)。
編寫程式,使其輸出這個圖案
執行以下**,觀察輸出並試著解釋程式的執行過程
#include
using
namespace std;
intmain()
暫略q:char c = 'a';
為啥c不加引號,a加引號?變數名和字元的區別是什麼?
a:c表示乙個盒子,盒子的名字叫c,'a』是字元,相當於盒子c裡面有張紙條,上面寫了a。如果寫c=a
會發生什麼呢?首先c=a
這種寫法必須前面定義過變數a,否則會報錯,因為他不知道a是什麼。定義過變數a之後,c=a
表示把a的值複製乙份給c,開啟盒子a,看一眼盒子a裡面的紙條,再拿乙個新的紙條,把a裡面的紙條上寫的東西抄上去,再把新的球放到c裡,把c裡原來的紙條燒了。這個過程對a沒影響,只是被看光了而已。
零基礎學程式設計系列一
每個人都有夢想,你是否也曾羨慕過那些月薪5萬的西二旗程式猿們?可是每個人條件不同,理想很豐滿,現實很骨感。有些非計算機專業的同學學習程式設計還是有些吃力。其實要想短時間內學會一門程式語言也不是沒有可能。本系列教程就是想給零基礎的同學帶入到程式設計這個神奇的世界中,凡事只要入門了後面學起來就會快起來。...
Python零基礎入門 基礎(六) 字元編碼
python直譯器在載入 py 檔案中的 時,會對內容進行編碼 預設ascill ascii american standard code for information interchange,美國標準資訊交換 是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8...
零基礎學Python
零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...