我正在基于分隔符(使用 Boost Tokenizer)对字符串进行标记,然后根据状态变量的值对标记进行处理。
我遇到的问题:其中一种情况需要进一步标记字符串。这会导致错误,因为在 case 中声明了 tok1 和 token 迭代器变量。我试过在开关之外声明它们,然后在机箱内分配它们,但这不起作用。
有谁知道我可以如何完成这项工作,或者是否有更好的方法来进一步标记案例内的字符串?谢谢!
下面的示例代码:
boost::char_separator<char> sep(TOKEN_DELIMETER_NEWLINE);
boost::char_separator<char> sep2(TOKEN_DELIMETER_SPACE);
tokenizer tok(_text, sep);
while(lineToken!=tok.end())
{
switch(state)
{
case FIRST_STATE:
lineToken++;
tokenizer tok1(*lineToken, sep2);
tokenizer::iterator token=tok1.begin();
break;
// Other Cases follow...
}
}