看板 EE_DSnP 關於我們 聯絡資訊
有同學在問: ================================================================== 我想請問一下關於HW3,cmdParser.cpp中的parseCmd(string& option)和 getCmd(string cmd),要如何將command拆成mandatory part和optional part呢? _cmdMap中的key(mandatory part)長短不一定, 那我要怎麼將command和key作string的比較? (我原先構想是將command(ex:DOF)拆成mandatory part(DO)和optional part(F), mandatory part為key去_cmdMap中找,若有找到,再利用checkOptCmd驗證optional part(F)是否符合規則,不過class中好像沒有記錄各mandatory part的長度, 所以我不知道該如何切割command的string,關於這部分我應該從何下手呢?) ================================================================= 比較無雷的提示: 1. 註冊在 _cmdMap 中的就是 command 的 mandatory part, 你可以直接呼叫 string 的 size() 就知道 mandatory part 的長度。 2. 至於 _optional part,可以在比對 mandatory part 拿到 CmdExe 的物件以後, 再呼叫 checkOptCmd() 即可拿到存在 CmdExe 裏頭的 _optCmd. 3. 那如果你輸入的是 "abcde"那我要用幾個字當作 mandatory 到 _cmdMap 裏頭找呢? 有點小雷的提示: 4. 無從得知! 但你可以試試看 "a", 然後 "ab"... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.6.140.145
nnthome:可不可以請教一下_cmdMap和_optCmd存了哪些東西? 11/12 19:02
MrOrz:_cmdMap 的 key 只有每個指令的 mandatory part 11/12 22:16
MrOrz:各個 CmdExec 物件的 _optCmd 則是該指令的 optional part 11/12 22:17
wintercobra:既然_cmdMap存的是mandatory part,就可以看看map中各 11/13 13:21
wintercobra:element(也就是mandatory part)的長度,來決定要 11/13 13:22
wintercobra:比對多少個字了 11/13 13:22
MrOrz:推樓上 我也是這樣作 11/14 00:24