解析包含两个撇号的字符串

时间:2015-04-05 23:23:27

标签: c++ string parsing apostrophe

string test =“F'XSXESS'”;

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

输出应为XSXESS。

关于我应该如何做的任何想法?

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分: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。您可以通过添加&#34;退出&#34; -state来解决此问题,该状态表示解析过程的结束。
希望我能提供帮助。