解析出包含两个撇号的字符串
问题描述:
string test =“F'XSXESS'”;解析出包含两个撇号的字符串
我该如何解析F'XSXESS',以便抓取撇号(XSXESS)中的信息?
输出应该是XSXESS。
任何想法如何我应该这样做?
感谢您提供任何帮助!
答
你基本上想要做的是,通过字符串中的所有字符,并在特定事件(在你遇到的情况下遇到\'
)切换解析状态。
这里一个小例子:
int main() {
std::string test = "FFF'XSXSXSX'FFFFF";
std::string result;
bool state = 0;
for(int i = 0; i < test.length(); i++) {
if(test.at(i) == '\'') {
state = !state;
continue;
}
if(state)
result.push_back(test.at(i));
}
std::cout << result << std::endl;
return 0;
}
为了简单起见,我选择一个bool来形容我现在的状态。此代码可能仍然不是最好的解决方案,因为这也会解析FF'XX'FFFF'CC'
至FFCC
。你可以通过添加一个“exit”状态来解决这个问题,这个状态表明了解析过程的结束。
希望我能帮上忙。
感谢您的帮助! – ZeroCG 2015-04-06 15:10:47