對於我的C之一++任務,我要解析這樣的句子如下:爲什麼我不正確解析?
SET a = 10 SET b = a PRINT b
要解析器這些語句,我用下面的代碼:
vector<string> stringSplitter(istringstream& tmp) {
vector<string> tokens;
string str;
while(tmp.good()) {
tmp >> str;
tokens.push_back(str);
}
return tokens;
}
錯誤檢查我要確保SET命令只有4個標記,而PRINT語句只有2個標記。
if (tokens.size() != 4) {
cerr << "Error in Line "<< lineNumber <<":Invalid format\n";
return -1;
}
和
if (tokens.size() != 2) {
cerr << "Error in Line "<< lineNumber <<":Invalid format\n";
return -1;
}
我遇到的問題是,它適用於「集A = 10」,「:我有當我檢查設置命令和打印命令,以便相應的條件打印一個「 因爲它不起作用,如果在句末有一個空格,如」SET a = 10「和」PRINT a「
任何人都可以幫忙嗎?
這裏有一個關於從std :: string修剪whitepace的SO帖子:http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring – 2013-03-01 16:22:58