看板 C_and_CPP 關於我們 聯絡資訊
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)
kobe123:請問ch不用寫成'ch'嗎,還是都可以 02/23 23:52
QQ29:ch是變數名稱唷 你寫成'ch' 還不會給你過... 02/23 23:53
kobe123:對喔@@我是好奇讀近的自元可以直接作加減 02/23 23:55
kobe123:目前手邊沒書,我明天再查書複習一下,感謝幫忙 02/23 23:56
ilway25:給qq.. 'ch' >= 'a' 會過,而且是永遠成立吧xd 02/24 00:01
james732:g++會給:warning: multi-character character constant 02/24 00:04
james732:不過確實會過 我還以為 ' ' 只能放一個字元而已 XDD 02/24 00:06
QQ29:喔喔不過VC會說什麼截斷 他幹麻給過呢= = 02/24 00:20
TroyLee:我說的那個應該是螞蟻書上面的範例還是作業有出現 02/24 00:46
james732:哦哦 沒有仔細看過螞蟻書...(慚愧中) 02/24 00:46
ledia:^0x20 只能用在 input 全是英文字母時 02/24 11:48