一 C語言的字元

2021-10-12 16:18:57 字數 3409 閱讀 1938

c語言有字元型別,也就是char型別,char型別的資料佔記憶體大小為1位元組。c語言中不存在字串型別!

字元是一種圖形符號,不同國家不同地區都有自己特殊的字元,於是就衍生了「字元集合」這個名詞。其中ascii (americanstandardcode forinformationinterchange: 美國資訊交換標準**)是國際通用的標準字符集,在網上隨時可以找到標準ascii**(部分截圖如下。

簡單解讀:

(1)使用乙個位元組來表示乙個字元,也就是8個二進位制位,並且第8個位都是0,2^7=128[0~127]。ascii表的第一列是字元的二進位制值,第二列是十進位制,第三列是十六進製制。一般是記憶字元的十進位制ascii值。

(2)ascii可分為兩種字元:33個不可顯示字元 + 95個可顯示字元。

(3)不可顯示字元。可理解為無法在文字上進行顯示的字元,但是能影響文字的顯示或者具有某種特殊的控制功能,下面是幾個特殊的不可顯示字元:

a.空字元null: ascii值為0,用於佔據乙個位置,這個位置可以繼續使用(如字串拼接)。空字元多用於字串中,所以空字元也稱為「字串結束符」,表示乙個字串結束了,空字元之前的字元就是該字串的最後乙個字元。注意空字元空格字元是兩個不一樣的字元,空格字元的ascii值為32,如下:

b. 回車符

回車符cr(carriagereturn:回車),ascll值是13。控制游標移動到當前行的開頭(左邊界)。

c.換行符

換行符lf(linef

d. 水平製表符

水平製表符ht(horizontal tab):ascll值是9。一般被定義為4/8個空格的寬度。

e.反斜槓字元

『\』: ascll值是92

(4)轉義字元

對於上面列出的不能顯示的字元,在程式中如何使用?肯定是不能直接使用其ascii的,c語言中,定義了「轉義字元」。使用組合:反斜槓+某個字母,來表示不能顯示的字元,由於這些字元是固定的表示,在c語言中,可以彙總成一張表,轉義字元表:

轉義字元

意義ascii碼值(十進位制)

\a響鈴(bel)

007\b

退格(bs) ,將當前位置移到前一列

008\f

換頁(ff),將當前位置移到下頁開頭

012\n

換行(lf) ,將當前位置移到下一行開頭

010\r

回車(cr) ,將當前位置移到本行開頭

013\t

水平製表(ht) (跳到下乙個tab位置)

009\v

垂直製表(vt)

011\\

代表乙個反斜線字元''\'

092\'

代表乙個單引號(撇號)字元

039\"

代表乙個雙引號字元

034\?

代表乙個問號

063\0

空字元(nul)

000\ddd

1到3位八進位制數所代表的任意字元

三位八進位制

\xhh

十六進製製所代表的任意字元

十六進製制

注:反斜槓+某個字母,表示的是乙個字元。並不是反斜槓字元加另乙個字元;回車和換行符經常組合到一起使用\r\n;

(5)可顯示字元

a. 10個數字字元0[ascii:48]~9[ascii: 57]

b. 26個大寫字母a[ascii:65]~z[ascii: 90]和26個小寫字母a[ascii:97]~z[ascii: 122]

c. 標點和可顯示的特殊字元[鍵盤上的字元,輸入後能在txt文字上顯示的]:{}、、!、@、#、?……

注:對於ascii值,數字字元 < 大寫字元 < 小寫字元。

c語言可以使用乙個字元型別的變數來儲存乙個字元,使用單引號將字元括起來,賦值給變數,對於字元變數,可以使用%c格式化輸出單個字元。示例程式如下:

int main(void)

執行結果如下:

c語言字元大小的比較,實際上比較的是ascii值,示例程式如下:

輸出如下:

因為字元在計算機記憶體中以ascii的形式進行儲存(1個位元組,8個二進位制位),可以直接以10進製列印出它們的值,實際上就對應ascii表裡面的ascii值。程式如下:

輸出如下:

(1) eascii

ascii字符集使用7個二進位制位(最高位第8位是0)來表示常見的字元,後來發現現有的128個字元不夠用,於是對ascii字符集進行了擴充套件,第8位也參與進來。這時候集合的元素個數就變成了2^8=256[0~255]個字元,增加了256-128=128個字元,這個字元集合命名為eascii,英文全稱「extended ascii」,可譯為ascii的擴充套件。它向下相容ascii字符集,即ascii是eascii的子集。

對於其他的字符集,比如gb2312、gb18030、big5、unicode、utf等字符集,涉及的就比較多,其他篇幅單獨做介紹。

字符集和字元編碼是兩個不同的概念,字符集是乙個集合,裡面是符號,並且集合裡的元素是固定的,唯一的,可確定的,是通用的(一種共識和標準)。而字元編碼是字元在計算機中的儲存形式,計算機只認識0和1兩個數字。

C語言字元

總結 不同計算機上c語言統一規定為 文字檔案的行結束符一律變成乙個符號lf,也就是換行符,也就是new line符,也就是 n 回車和換行符轉換成乙個換行符 對pc機而言,文字檔案行結束符,crlf讀入後,丟掉cr,留 lf.例如fgets 讀入一行,行尾只有lf,沒有cr.目錄欄 1 換行符 n ...

c語言 一維字元型陣列

什麼是一維字元型陣列 char a 5 這個陣列中含有5各元素,每個元素都是乙個字元型變數 如何定義一字元型維陣列 格式 char 陣列名 長度 ex char a 6 定義了乙個含有6個字元型變數的陣列a。如何來給一維字元型陣列賦初值?1 一維字元型陣列從 整體上看 就是乙個字串,但是其中的每乙個...

c語言字元常量和字串常量 C語言中的字元常量

c語言字元常量和字串常量 any character a single character that is enclosed within the single quotes like,a is calledcharacter constants in c programming language....