核心就是利用ascii碼實現大小寫字母轉換
十進位制仔細觀察不難發現任意乙個大寫字母的ascii碼加上32就是其對應的小寫字母的ascii碼——即小寫字母_acsii碼=大寫字母_acsii碼+32,反之則有大寫字母_acsii碼=小寫字母_acsii碼-32.**如下,其中letter是定義好的字元變數,下同。
//十進位制 if(
'a'<=letter&&letter<=
'z')
cout<<
char
(int
(letter)+32
);//大寫轉小寫
elseif(
'a'<=letter&&letter<=
'z')
cout<<
char
(int
(letter)-32
);//小寫轉大寫
else cout<<
"輸入不合法"
;
二進位制
每個字母的ascii碼轉換成二進位制後,我們會發現任一字母的大小寫間ascii碼只有第5位不同(從0開始計位),大寫字母第5位是0,小寫字母第五位是1,我們的方法就是讓大寫字母的ascii碼按位或00100000,0或a結果為a(假設a是二進位制的一位,取0或者1),而 1或a等於(1),這樣便可以把大寫字母的ascii碼轉化為小寫字母的ascii碼。基於同樣的原理,我們可以令小寫字母的ascii碼按位與11011111,得到對應的大寫字母的ascii碼。**如下。
//二進位制 if(
'a'<=letter&&letter<=
'z')
cout<<
char
(int
(letter)|32
);//32的二進位制是00100000
elseif(
'a'<=letter&&letter<=
'z')
cout<<
char
(int
(letter)
&223);
//223的二進位制是11011111
else cout<<
"輸入不合法"
;return
0;
二進位制異或
因為不用區分大小寫,所以這是最簡便的方式.異或的原則是相同為0,相異為1,我們不難得到0異或a=a(a同上,是二進位制的一位),1異或a是對a取反。如上所述,字母大小寫間的二進位制形式ascii,只有第五位不同,那麼我們只要利用大寫(或者小寫)的ascii碼異或00100000,便能使得其他位不變,第五位是0變1(大寫轉小寫),是1變0(小寫變大寫)。**如下。
//二進位制異或if(
'a'<=letter&&letter<=
'z'||
'a'<=letter&&letter<=
'z')
cout<<
char
(int
(letter)^32
);//32的二進位制是00100000
else cout<<
"輸入不合法"
;
轉換大小寫字母 0330
思路分析 首先用getchar 函式獲得字元,然後判斷字元為大寫還是小寫,如果是大寫字母就轉換為小寫,如果是小寫字母就轉換為大寫 如果輸入的是數字就不輸出 定義乙個終止符,輸入終止符就退出迴圈 最後附上 define crt secure no warnings include includeint...
大小寫字母轉換 彙編
組合語言中一般的格式為 1 定義資料段和 段 2 確認資料段和 段,但是並未指明資料段的位址 3 程式一開始先指明資料段的位址 4 開始程式編寫 5 程式結束時要呼叫程式終止的終斷,否則程式無法正常終止 一段小例程,演示組合語言的基本格式,實現8位數字的加法 資料段定義 data segment a...
大小寫字母判斷和轉換
一 大小寫字母判斷 1.isalpha 標頭檔案 c include c語言 include 功能 判斷字元ch是否為英文本母。當ch為英文本母a z或a z時,返回非零值,但不一定是1 否則返回零。格式 isalpha ch 2.isupper 標頭檔案 c include c語言 include...