作者shane123 (家产有八十七亿  ﰩ
站内Programming
标题Re: [问题] 字串比较的问题
时间Tue Feb 20 21:16:52 2007
你需要的是 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