字符型量
字符型量包括字符常量和字符變量。
字符常量
字符常量是用單引號括起來的一個字符。例如'a','b','=','+','?'都是合法字符常量。在C語言中,字符常量有以下特點:
1.字符常量只能用單引號括起來,不能用雙引號或其它括號。
2.字符常量只能是單個字符,不能是字符串。
3.字符可以是字符集中任意字符。但數字被定義為字符型之后就不能參與數值運算。如'5'和5 是不同的。'5'是字符常量,不能參與運算。
轉義字符
轉義字符是一種特殊的字符常量。轉義字符以反斜線"\"開頭,后跟一個或幾個字符。轉義字符具有特定的含義,不同于字符原有的意義,故稱“轉義”字符。例如,在前面各例題printf函數的格式串中用到的“\n”就是一個轉義字符,其意義是“回車換行”。轉義字符主要用來表示那些用一般字符不便于表示的控制代碼。
常用的轉義字符及其含義
轉義字符 轉義字符的意義 \n 回車換行 \t 橫向跳到下一制表位置 \v 豎向跳格 \b 退格 \r 回車 \f 走紙換頁 \\ 反斜線符"\" \' 單引號符 \a 鳴鈴 \ddd 1~3位八進制數所代表的字符 \xhh 1~2位十六進制數所代表的字符 廣義地講,C語言字符集中的任何一個字符均可用轉義字符來表示。表2.2中的\ddd和\xhh正是為此而提出的。ddd和hh分別為八進制和十六進制的ASCII代碼。如\101表示字?quot;A" ,\102表示字母"B",\134表示反斜線,\XOA表示換行等。轉義字符的使用。
void main() { int a,b,c; a=5; b=6; c=7; printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c); }
此程序練習轉義字符的使用:
a、b、c為整數 5->a,6->b,7->c
調用printf顯示程序運行結果:
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
程序在第一列輸出a值5之后就是“\n”,故回車換行;接著又是“\t”,于是跳到下一制表位置(設制表位置間隔為8),再輸出b值6;空二格再輸出c 值7后又是"\n",因此再回車換行;再空二格之后又輸出a值5;再空三格又輸出b的值6;再次后"\t"跳到下一制表位置(與上一行的6 對齊),但下一轉義字符“\b”又使退回一格,故緊挨著6再輸出c值7。
字符變量
字符變量的取值是字符常量,即單個字符。字符變量的類型說明符是char。字符變量類型說明的格式和書寫規則都與整型變量相同。
例如:
char a,b; 每個字符變量被分配一個字節的內存空間,因此只能存放一個字符。字符值是以ASCII碼的形式存放在變量的內存單元之中的。如x的
十進制ASCII碼是120,y的十進制ASCII碼是121。對字符變量a,b賦予'x'和'y'值: a='x';b='y';實際上是在a,b兩個單元內存放120和121的二進制代碼:
a 0 1 1 1 1 0 0 0 b 0 1 1 1 1 0 0 1
所以也可以把它們看成是整型量。 C語言允許對整型變量賦以字符值,也允許對字符變量賦以整型值。在輸出時, 允許把字符變量按整型量輸出,也允許把整型量按字符量輸出。 整型量為二字節量,字符量為單字節量,當整型量按字符型量處理時, 只有低八位字節參與處理。
main(){ char a,b; a=120; b=121; printf("%c,%c\n%d,%d\n",a,b,a,b); } a ■ b ■ a <-- 120="">--> b <--- 121="">--->
顯示程序結果 char a,b;
a=120; b=121;
本程序中說明a,b為字符型,但在賦值語句中賦以整型值。從結果看,a,b值的輸出形式取決于printf函數格式串中的格式符,當格式符為"c"時,對應輸出的變量值為字符,當格式符為"d"時,對應輸出的變量值為整數。
void main(){ char a,b; a='x'; b='y'; a=a-32; b=b-32; printf("%c,%c\n%d,%d\n",a,b,a,b); }
a,b被說明為字符變量并賦予字符值
把小寫字母換成大寫字母
以整型和字符型輸出
本例中,a,b被說明為字符變量并賦予字符值,C語言允許字符變量參與數值運算,即用字符的ASCII 碼參與運算。由于大小寫字母的ASCII 碼相差32,因此運算后把小寫字母換成大寫字母。然后分別以整型和字符型輸出。
[Practice] //charint a=49; char b; char d; b=a+10; d=a+b;'Vtable a,2,49 b,1,隨機 d,1,隨機 of Vtable 'Vupdate 1,49 2,隨機 3,隨機 2,';' 3,'l' of Vupdate of Practice [Practice] //char c1,c2; c1='a';c2='b'; c1=c1-32;c2=c2-32;'Vtable c1,1,隨機 c2,1,隨機 of Vtable 'Vupdate 1,隨機;2,隨機 1,'a';2,'b' 1,'A';2,'B' of Vupdate of Practice [1] [2] 下一頁
|