2015-04-05 78 views
-1

string test =“F'XSXESS'”;解析出包含两个撇号的字符串

我该如何解析F'XSXESS',以便抓取撇号(XSXESS)中的信息?

输出应该是XSXESS。

任何想法如何我应该这样做?

感谢您提供任何帮助!

回答

0

你基本上想要做的是,通过字符串中的所有字符,并在特定事件(在你遇到的情况下遇到\')切换解析状态。
这里一个小例子:

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”状态来解决这个问题,这个状态表明了解析过程的结束。
希望我能帮上忙。

+0

感谢您的帮助! – ZeroCG 2015-04-06 15:10:47

相关问题