作者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