最近廢話不多繼續提升,
字符常量
‘a’和’9’都是字符常量
注意:’9’和9有很大區別
※單引號的空格’□’也是一個字符常量,但不能寫成連續兩個單引號’’
字符變數
char c; /*定義一個字符變數*/
※字符變數在記憶體中占一個位元組,它只能存放ASCII(美國資訊交換標準代碼)碼,
※標準的ASCII碼只有127個字符(見附錄1),電子設備統一了標準,各種電報機,列印機,電腦就可參照標準大規模生產,還可以通過ASCII碼交換資料,
※我們在用鍵盤輸入資料時,電腦會從ASCII對照表中讀取相應的ASCII碼裝入記憶體,而不是真實的字符,同理,想要顯示資訊在螢屏上時,也要使用參照表將ASCII碼轉換成字符,再顯示在螢屏上,
※大家看到,在 ASCII碼表中,每個字符都有序號,要記住我們常用的字符對應的序號也不難,方法如下:
‘0’~’9’對應的整數為48~57
‘A’~’Z’對應的整數為65~90
‘a’~’z’ 對應的整數為97~122
※大寫字母與小寫字母的差值為32,于是得出小寫字母減32的值剛好是對應的大寫字母,






字符型別的輸入輸出
printf和scanf 兩個函式的意思是:printf => print + format , sacnf => scan + format .
格式控制符為%c
如:
char c;
scanf(“%c”,&c);
printf(“%c”,c);
putchar和getchar
如:
char c;
c=getchar();
putchar(c);
※無論是字符還是字串常量,引號在螢屏上輸入輸出都不會顯示,在編程時一定要加上,以區分其它型別的常量,
字符運算
※C語言規定,所有的字符運算都是轉成ASCII碼的整數運算,
如:
‘B’-‘A’ 相當于66-65=1
‘a’+1相當于97+1=98=’b’
‘9’+’9’ 相當于57+57=114=’r’
※既然字符型資料和整型資料可這么方便的轉換,那么字符型資料也經常使用%d輸出,用來得到字符的ASCII碼序號,
※不可以對字串進行類似的運算,如”b”-“a”是錯誤的,字串運算必須通過函式,將在后面介紹
// 9 _1 字符運算 #include <stdio.h> void main() { int i1, i2; char c1, c2; //字符 + 整型 賦值給整型 i1 = 'a' + 1; i2 = 'a' - 'b'; printf("i1 = %d\n i2 = %d\n", i1, i2); //整型 賦值給字符型 c1 = 97; c2 = 48; printf("c1=%c\nc2=%c\n", c1, c2); printf("整型輸出字符型c1=%d\nc2=%d\n", c1, c2); printf("字符型輸出整型i1=%c\ni2=%c\n", i1, i2); }
用scanf輸入字符
※每個%c只接收一個字符
scanf(“%c%c%c”,&a,&b,&c);
如果輸入
uvwxyz(回車)
系統會自動一個一個地截取,使a=’u’,b=’v’,c=’w’
※在字符型變數上使用列寬控制時,第一個變數只會讀取第一個字符,第二個變數會跳躍列寬后再讀取一個字符
scanf(“%3c%3c”,&c1,&c2);
如果輸入
abcde(回車)
c1為a,c2為d 因為是3個字符列寬,所以c2為d
※空格和回車都作為字符
scanf(“%c%c%c”,&a,&b,&c);
如果輸入
x□y□z □ 占位符代表回車和空格
系統會自動使a=’x’,b=’□’,c=’y’,最右邊的兩個字符被丟棄
如果輸入
x(回車)
yz
a、c與前面相同,但是b會賦于一個回車,也就是ASCII碼的10,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295940.html
標籤:C
