作者SATSUGAI (約翰‧克勞薩二世)
看板C_and_CPP
標題[問題] 一個龜毛的問題...
時間Mon Apr 13 23:21:42 2009
程式碼如下
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
1F:推 stool100:如果變數ABab是陣列元素或是指標 才有辦法 04/13 23:44
2F:推 tomnelson:你的this變數如果非'K'即'k'才有辦法吧! 04/13 23:47
3F:推 Ebergies:if this=='A'+this-'K' then a++; blah... 04/13 23:48
對...
剛才靈光乍現想到的方法
應該就是3F說的這樣
內容有點長,如果版友有興趣的話我再上來補...
4F:推 tomnelson:感覺原po的程式好像是要算字元出現次數的樣子? 04/13 23:49
5F:→ tomnelson:如果是我推測的沒錯,那就真的有更好的解法! 04/13 23:51
不是耶XD
我只是用個簡單的例子舉例說明而已
怕大家不好懂
※ 編輯: SATSUGAI 來自: 61.227.191.82 (04/14 00:14)
6F:推 sunneo:如果單純只是想要簡化,那可以 if(tolower(this) == 'k') 04/14 00:14
7F:→ sunneo:或者弄個陣列 Array[ isupper(this)*Upper的開始位置 ] 04/14 00:18
8F:→ sunneo:那麼upper就會map到upper字元,反之到lower字元 04/14 00:18
9F:→ sunneo:這麼一來對於變數就要建表放變數的位址 04/14 00:20
10F:→ sunneo:假使不是如上述的關係,而是希望字元可以縮為語法 04/14 00:21
11F:→ sunneo:也就是說如果是希望程式上的設計可以影響展開的程式碼 04/14 00:21
12F:→ sunneo:那可能就不太ok了吧 04/14 00:22
13F:推 tomnelson:嗯,原po啊,其實如果你的龜毛無法增加程式執行效率,還是 04/14 00:50
14F:→ tomnelson:別龜在這上面吧!就讓原code維持現狀吧!話說你要龜的話, 04/14 00:52
15F:→ tomnelson:我也沒辦法...一個曾經很龜...現在偶爾龜(效率考量)的人 04/14 00:53
16F:推 ledia:改善效率要先看瓶頸在哪裡, 只執行幾次的 code 還是維持可 04/14 10:55
17F:→ ledia:讀性比較重要 04/14 10:55