看板 C_and_CPP 關於我們 聯絡資訊
程式碼如下 if(this=='K') { if(c[0]=='a') a++; if(c[1]=='b') b++; } if(this=='k') { if(c[0]=='A') A++; if(c[1]=='B') B++; } 兩個if,大體上架構一樣 所以我在想能不能把它簡化成1個if if(this==○) { if(c[0]==◎) §++; if(c[1]==●) €++; } 如果○是大寫K,就對應到 ◎ = 字元'a' § = 變數a ● = 字元'b' € = 變數b 如果○是小寫k,就對應到 ◎ = 字元'A' § =變數A ● = 字元'B' € = 變數B 有辦法這樣做嗎?orz 純粹一個龜毛的問題... 感謝各位神人指教 -- Johannes Krauser II 強暴!強暴!強暴!強暴!強暴!強暴! GO TO D.M.C ◥◣ ◥◣ 強暴!強暴!強暴!強暴!強暴! ▄▂▁▂▃▅▆▅ ▃▄ ∵ ∵ ▃▄▃ シ ▋▊▍ φjeans1020 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.191.82
stool100:如果變數ABab是陣列元素或是指標 才有辦法 04/13 23:44
tomnelson:你的this變數如果非'K'即'k'才有辦法吧! 04/13 23:47
Ebergies:if this=='A'+this-'K' then a++; blah... 04/13 23:48
對... 剛才靈光乍現想到的方法 應該就是3F說的這樣 內容有點長,如果版友有興趣的話我再上來補...
tomnelson:感覺原po的程式好像是要算字元出現次數的樣子? 04/13 23:49
tomnelson:如果是我推測的沒錯,那就真的有更好的解法! 04/13 23:51
不是耶XD 我只是用個簡單的例子舉例說明而已 怕大家不好懂 ※ 編輯: SATSUGAI 來自: 61.227.191.82 (04/14 00:14)
sunneo:如果單純只是想要簡化,那可以 if(tolower(this) == 'k') 04/14 00:14
sunneo:或者弄個陣列 Array[ isupper(this)*Upper的開始位置 ] 04/14 00:18
sunneo:那麼upper就會map到upper字元,反之到lower字元 04/14 00:18
sunneo:這麼一來對於變數就要建表放變數的位址 04/14 00:20
sunneo:假使不是如上述的關係,而是希望字元可以縮為語法 04/14 00:21
sunneo:也就是說如果是希望程式上的設計可以影響展開的程式碼 04/14 00:21
sunneo:那可能就不太ok了吧 04/14 00:22
tomnelson:嗯,原po啊,其實如果你的龜毛無法增加程式執行效率,還是 04/14 00:50
tomnelson:別龜在這上面吧!就讓原code維持現狀吧!話說你要龜的話, 04/14 00:52
tomnelson:我也沒辦法...一個曾經很龜...現在偶爾龜(效率考量)的人 04/14 00:53
ledia:改善效率要先看瓶頸在哪裡, 只執行幾次的 code 還是維持可 04/14 10:55
ledia:讀性比較重要 04/14 10:55