Re: [問題] 字串比較的問題

看板Programming作者時間18年前 (2007/02/20 21:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/12 (看更多)
你需要的是 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
文章代碼(AID): #15slJ6Yp (Programming)
討論串 (同標題文章)
文章代碼(AID): #15slJ6Yp (Programming)