对于我的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