[問題] 一個龜毛的問題...

看板C_and_CPP (C/C++)作者 (約翰‧克勞薩二世)時間16年前 (2009/04/13 23:21), 編輯推噓7(7010)
留言17則, 5人參與, 最新討論串1/1
程式碼如下 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

04/13 23:44, , 1F
如果變數ABab是陣列元素或是指標 才有辦法
04/13 23:44, 1F

04/13 23:47, , 2F
你的this變數如果非'K'即'k'才有辦法吧!
04/13 23:47, 2F

04/13 23:48, , 3F
if this=='A'+this-'K' then a++; blah...
04/13 23:48, 3F
對... 剛才靈光乍現想到的方法 應該就是3F說的這樣 內容有點長,如果版友有興趣的話我再上來補...

04/13 23:49, , 4F
感覺原po的程式好像是要算字元出現次數的樣子?
04/13 23:49, 4F

04/13 23:51, , 5F
如果是我推測的沒錯,那就真的有更好的解法!
04/13 23:51, 5F
不是耶XD 我只是用個簡單的例子舉例說明而已 怕大家不好懂 ※ 編輯: SATSUGAI 來自: 61.227.191.82 (04/14 00:14)

04/14 00:14, , 6F
如果單純只是想要簡化,那可以 if(tolower(this) == 'k')
04/14 00:14, 6F

04/14 00:18, , 7F
或者弄個陣列 Array[ isupper(this)*Upper的開始位置 ]
04/14 00:18, 7F

04/14 00:18, , 8F
那麼upper就會map到upper字元,反之到lower字元
04/14 00:18, 8F

04/14 00:20, , 9F
這麼一來對於變數就要建表放變數的位址
04/14 00:20, 9F

04/14 00:21, , 10F
假使不是如上述的關係,而是希望字元可以縮為語法
04/14 00:21, 10F

04/14 00:21, , 11F
也就是說如果是希望程式上的設計可以影響展開的程式碼
04/14 00:21, 11F

04/14 00:22, , 12F
那可能就不太ok了吧
04/14 00:22, 12F

04/14 00:50, , 13F
嗯,原po啊,其實如果你的龜毛無法增加程式執行效率,還是
04/14 00:50, 13F

04/14 00:52, , 14F
別龜在這上面吧!就讓原code維持現狀吧!話說你要龜的話,
04/14 00:52, 14F

04/14 00:53, , 15F
我也沒辦法...一個曾經很龜...現在偶爾龜(效率考量)的人
04/14 00:53, 15F

04/14 10:55, , 16F
改善效率要先看瓶頸在哪裡, 只執行幾次的 code 還是維持可
04/14 10:55, 16F

04/14 10:55, , 17F
讀性比較重要
04/14 10:55, 17F
文章代碼(AID): #19urY9w0 (C_and_CPP)
文章代碼(AID): #19urY9w0 (C_and_CPP)