程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言字符型數據使用教程

C語言字符型數據使用教程

編輯:關於C語言
  字符型數據包括字符常量和字符變量。

字符常量

字符常量是用單引號括起來的一個字符。例如:
'a'、'b'、'='、'+'、'?'
都是合法字符常量。

在C語言中,字符常量有以下特點:
  • 字符常量只能用單引號括起來,不能用雙引號或其它括號。
  • 字符常量只能是單個字符,不能是字符串。
  • 字符可以是字符集中任意字符。但數字被定義為字符型之後就不能參與數值運算。如'5'和5 是不同的。'5'是字符常量,不能參與運算。

轉義字符

轉義字符是一種特殊的字符常量。轉義字符以反斜線"\"開頭,後跟一個或幾個字符。轉義字符具有特定的含義,不同於字符原有的意義,故稱“轉義”字符。例如,在前面各例題printf函數的格式串中用到的“\n”就是一個轉義字符,其意義是“回車換行”。轉義字符主要用來表示那些用一般字符不便於表示的控制代碼。
常用的轉義字符及其含義 轉義字符 轉義字符的意義 ASCII代碼 \n 回車換行 10 \t 橫向跳到下一制表位置 9 \b 退格 8 \r 回車 13 \f 走紙換頁 12 \\ 反斜線符"\" 92 \' 單引號符 39 \” 雙引號符 34 \a 鳴鈴 7 \ddd 1~3位八進制數所代表的字符   \xhh 1~2位十六進制數所代表的字符  
廣義地講,C語言字符集中的任何一個字符均可用轉義字符來表示。表中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字母"A" ,\102表示字母"B",\134表示反斜線,\XOA表示換行等。

【例3-8】轉義字符的使用。
main(){
    int a,b,c;
    a=5; b=6; c=7;
    printf(" ab c\tde\rf\n");
    printf("hijk\tL\bM\n");
}

字符變量

字符變量用來存儲字符常量,即單個字符。字符變量的類型說明符是char。字符變量類型定義的格式和書寫規則都與整型變量相同。例如:
char a,b;

字符數據在內存中的存儲形式及使用方法

每個字符變量被分配一個字節的內存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內存單元之中的。

如x的十進制ASCII碼是120,y的十進制ASCII碼是121。對字符變量a、b賦予'x'和'y'值:
a='x';
b='y';
實際上是在a、b兩個單元內存放120和121的二進制代碼:

 
所以也可以把它們看成是整型量。C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時,允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。

整型量為二字節量,字符量為單字節量,當整型量按字符型量處理時,只有低八位字節參與處理。

【例3-9】向字符變量賦以整數。
main(){
    char a,b;
    a=120;
    b=121;
    printf("%c,%c\n",a,b);
    printf("%d,%d\n",a,b);
}

本程序中定義a,b為字符型,但在賦值語句中賦以整型值。從結果看,a,b值的輸出形式取決於printf函數格式串中的格式符,當格式符為"c"時,對應輸出的變量值為字符,當格式符為"d"時,對應輸出的變量值為整數。

【例3-10】
main(){
    char a,b;
    a='a';
    b='b';
    a=a-32;
    b=b-32;
    printf("%c,%c\n%d,%d\n",a,b,a,b);
}

本例中,a,b被說明為字符變量並賦予字符值,C語言允許字符變量參與數值運算,即用字符的ASCII 碼參與運算。由於大小寫字母的ASCII 碼相差32,因此運算後把小寫字母換成大寫字母。然後分別以整型和字符型輸出。

字符串常量

字符串常量是由一對雙引號括起的字符序列。例如: "CHINA" , “C program” , "$12.5" 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它們之間主要有以下區別:
  • 字符常量由單引號括起來,字符串常量由雙引號括起來。
  • 字符常量只能是單個字符,字符串常量則可以含一個或多個字符。
  • 可以把一個字符常量賦予一個字符變量,但不能把一個字符串常量賦予一個字符變量。在C語言中沒有相應的字符串變量。這是與BASIC 語言不同的。但是可以用一個字符數組來存放一個字符串常量。在數組一章內予以介紹。
  • 字符常量占一個字節的內存空間。字符串常量占的內存字節數等於字符串中字節數加1。增加的一個字節中存放字符"\0" (ASCII碼為0)。這是字符串結束的標志。

例如,字符串 "C program" 在內存中所占的字節為:


字符常量'a'和字符串常量"a"雖然都只有一個字符,但在內存中的情況是不同的。

'a'在內存中占一個字節,可表示為:


"a"在內存中占二個字節,可表示為:
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved