解析出包含两个撇号的字符串
Parsing out a string that contains two Apostrophe's
字符串测试="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;
}
为了简单起见,我选择了一个布尔值来描述我的当前状态。此代码可能仍然不是最佳解决方案,因为它还会将 FF'XX'FFFF'CC'
解析为 FFCC
。您可以通过添加一个 "exit" 状态来解决此问题,该状态指示解析过程结束。
希望能帮到你。
字符串测试="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;
}
为了简单起见,我选择了一个布尔值来描述我的当前状态。此代码可能仍然不是最佳解决方案,因为它还会将 FF'XX'FFFF'CC'
解析为 FFCC
。您可以通过添加一个 "exit" 状态来解决此问题,该状态指示解析过程结束。
希望能帮到你。