Re: [問題] 大小寫轉換
http://zh.wikipedia.org/wiki/ASCII
在ASCII編碼裡,小寫總是會比大寫還要大
也就是說,如果 ch >= 'a' 的話,那它一定是小寫了
如果是小寫,就先減掉'a',得知它是小寫的第幾個字
譬如說 'b'-'a' 就會得到 1
然後再加上 'A',換算成第幾個大寫字
剛剛的例子裡, 'A'+1 = 'B' 就得到了
大寫也是一樣的道理
可以更進一步寫成
ch = (ch >= 97) ? (ch - 32) : (ch + 32);
用常數來替代,看起來更簡潔,但會比較不直覺 XDD
剛剛看到推文有 ch ^= 0x20 用 XOR 運算
這個方法就更厲害了 XDD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.62.38
※ 編輯: james732 來自: 59.104.62.38 (02/23 23:45)
推
02/23 23:52, , 1F
02/23 23:52, 1F
推
02/23 23:53, , 2F
02/23 23:53, 2F
推
02/23 23:55, , 3F
02/23 23:55, 3F
→
02/23 23:56, , 4F
02/23 23:56, 4F
→
02/24 00:01, , 5F
02/24 00:01, 5F
→
02/24 00:04, , 6F
02/24 00:04, 6F
→
02/24 00:06, , 7F
02/24 00:06, 7F
推
02/24 00:20, , 8F
02/24 00:20, 8F
推
02/24 00:46, , 9F
02/24 00:46, 9F
→
02/24 00:46, , 10F
02/24 00:46, 10F
推
02/24 11:48, , 11F
02/24 11:48, 11F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章