哼!
2007-02-17 12:13:32 UTC
※ [本文轉錄自 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.31.135.140
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.135.140
作者: 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.31.135.140
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.135.140