Re: [問題] 字串比較的問題
你需要的是 command 這個 pattern
或者是參考 Modern C++ Design 裡面的 object factories
這些都會比 if..else...switch...case 之類的好一些
※ 引述《jgpnsgm (哼!)》之銘言:
: ※ [本文轉錄自 C_and_CPP 看板]
: 作者: jgpnsgm (哼!) 看板: C_and_CPP
: 標題: [問題] 字串比較的問題
: 時間: Sat Feb 17 20:11:52 2007
: 搜尋"字串"好像沒有類似的問題
: 假設要寫一個判斷指令的程式
: 譬如說C的compiler或是接收指令(RS232, Internet)來做相對應的事情
: 如果指令的格式是int或是其他可以轉成int的type
: 就可以用switch case來做...
: 但是如果是字串...switch case不支援字串...(C,C++,Java)
: 一個很直覺的方式是用if else 來做
: ################## start ###################
: char cmd[100];
: getCmd(cmd);
: if ( strcmp ( cmd, "reboot" ) == 0 )
: reboot();
: else if ( strcmp ( cmd, "shutdown" ) == 0 )
: shutdown();
: else if ( strcmp ( cmd, "play" ) == 0 )
: play();
: else if ....
: else if ....
: else if ....
: ################## end #####################
: 如果有一百個指令...就要寫100個if else
: 如果要用switch case來作....
: ################## start ###################
: char cmd[100];
: getCmd(cmd);
: switch ( cmd[0] )
: {
: case 'r':
: reboot();
: break;
: case 's':
: shutdown();
: break;
: case 'p':
: play();
: break;
: default:
: break;
: }
: ################## end #####################
: 這裡switch case舉的例子比較不好,
: 在某些指令較短,而且有分類的情況下似乎比較好管理
: 但是以上這兩個方法,看起來應該不是最好的做法
: 如果switch case能直接支援string應該比較好管理
: 但不幸的是沒有支援
: 想請問大家的是,這類的程式應該要怎麼寫才好呢
: 還請大家提供一些較好的方法
: thanks.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.97.25
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章