C語言程式設計:大小寫互換
從鍵盤輸入一個字串,將其中的大寫字母變小寫,小寫變大寫,其它字元不變。
懸賞分:0 - 離問題結束還有 10 天 7 小時
//----------------------------------------------------------------------
分析:
大寫字母的ASCII碼從41H開始,小寫字母的ASCII碼從61H開始,大小寫字母ASCII碼相差20H。
大寫變小寫加20H,小寫變大寫減20H。
用邏輯運算:
針對某個字母,“與”上1101 1111,可變換成大寫;
針對某個字母,“或”上0010 0000,可變換成小寫;
針對某個字母,“異或”上0010 0000,可進行大小寫互換。
可以看出,大小寫互換,只要一次性“異或0x20”即可,不必先區分大小寫。
下列程式經過試驗,符樓主要求。
#include <stdio.h>
void main(void)
{
char i = 0, temp[100];
scanf("%s", temp);
while(temp[i] != '\0') {
if(((temp[i] >= 'A') && (temp[i] <= 'Z')) || ((temp[i] >= 'a') && (temp[i] <= 'z')))
temp[i] ^= 0x20;
i++;
}
printf("\n%s\n", temp);
getch();
}
回答者: 做而論道 - 十四級 2010-11-19 21:03
//----------------------------------------------------------------------
原題網址:http://zhidao.baidu.com/question/199079437.html