作者ric2k1 (Ric)
看板EE_DSnP
標題Re: [問題] 要怎麼做Command Parsing @__@?
時間Tue May 6 23:18:49 2008
將一個 string tokenize 就是將它根據 delimiter 切成一個個的 tokens.
比方說,
string str = "Hello World of DSnP";
char del = 'o';
將它 tokenize 後就會變成:
"Hell", " W", "rld ", "f DSnP".
// in util/myString.cpp
size_t
myStrGetTok(const string& str, string& tok, size_t pos = 0,
const char del = ' ');
就是將 str 從第 pos 個字元開始切, 忽略起始的 delimiter (del),
切到下一個 del 為止, 然後將切出來的子字串存到 tok,
return 下一個 del 的 position.
至於 lexSingleOption 以及 lexOptions,
請參見 homework 3 裡 cmd/cmdParser.cpp.
內附有說明 (英文) 以及程式碼.
加油!!
※ 引述《BVB (BVB)》之銘言:
: 先聲明之前的作業都是自己寫出來的...
: 可是總覺得之前的作業不用實際上懂Command Parsing也能做OrzOrz
: 可是這次全部都要自己來 囧"
: 能否請通透人士稍微簡單說明一下
: CmdExec::lexSingleOption
: CmdExec::lexOption
: myStrGetTok (const string, string&, size_t, const char);
: 這幾個函式的用法?Orz
: 我目前的理解只有這樣...
: bool lexSingleOption (string str, string tok, bool = false)
: 丟入一個string,可以幫你"parse"成tok ??
: 如果parse失敗就丟出false ??
: bool lexOption (string option, vector<string> options, int)
: 把option裡面用空白格開的一個個東西丟到vector裡面??
: 最後一個int是預期會有幾項??
: 如果options.size()不等於該int或其它不預期的情況就return false??
: bool myStrGetTok
: 真的不太瞭解...是get什麼token啊??
: 請老師給一點提示吧 Q Q
: 我已經寫了20個小時(幾乎連續)啦OrzOrz
: 現在智商應該只剩10左右...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.134.232
1F:推 BVB:謝謝老師~ 05/06 23:34