有三種方式可以解決c語言大小寫字母的轉換
成都創(chuàng)新互聯(lián)專業(yè)提供四川移動機房托管服務,為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買四川移動機房托管服務,并享受7*24小時金牌售后服務。
1.使用C語言提供的函數(shù):toupper(),tolower()
使用這兩個函數(shù)需要引入頭文件:#includectype.h
示例代碼:
輸入如下
2.自己編寫轉換函數(shù):
因為大小寫之間的ASCII碼值的差值是固定的,因此可以使用‘a(chǎn)’-‘A’來獲取差值。
實例代碼:
輸出如下:
3.異或0x20來實現(xiàn)轉換:
0x20是16進制,表示為2進制是00100000,這樣可能還是不明顯,轉換為10進制,其實就是32
對了,還是利用32.
異或:相同為0,不同為1. ?也就是說,任何數(shù)字與0異或都是它本身。
所以將其他位都設為0,把第6位(從左向右)設置為1,也就是0x20
如果第6位是1,則異或結果為0.
如果第6位是0,則異或結果為1.
實現(xiàn)了加減32的操作。
示例代碼:
輸入如下:
希望可以幫到你。。。
你的程序里面獲取循環(huán)的位置不對,也就是獲取的字符串長度的n應該放在函數(shù)里面。
講n=strlen(s)放到函數(shù)里面,就可以了。
用ctype.h中的函數(shù)tolower和toupper。前者以大寫的字符作為參數(shù),返回相應的小寫字符;后者以小寫的字符作為參數(shù),返回相應的大寫字符。
#include ctype.h
#include stdio.h
int main()
{
char c = 'A';
printf("%c", tolower(c)); //a
c = 'b';
printf("%c", toupper(c)); //B
return 0;
}
如果沒有相應的大小寫,函數(shù)會返回字符本身。
#include ctype.h
#include stdio.h
int main()
{
char c = '0';
printf("%c", tolower(c)); //0
printf("%c", toupper(c)); //0
return 0;
}