如何在 c++ 中删除字符串中的某些字符?



例如,如果我正在接受下面的字符串。

"{{((A+b)-xyz)addf}sss}";

我想忽略所有不是括号或大括号的字符,结果。

"{{(())}}"

什么方法最有效。

您没有指定如何准确获取字符串,但请考虑:

std::string str = "{{((A+b)-xyz)addf}sss}";

您可以使用erase-remove成语。我们指定一个自定义删除器,它将是一个函数(实际上是一个 lambda - 一个函子(,它将检查字符是否不是大括号或括号。

auto deleter = [](const char c){
return c != '(' && c != ')' && c != '{' && c != '}';
};

然后我们用erase-remove成语:

str.erase(std::remove_if(str.begin(), str.end(), deleter), str.end());

这将导致原始str变成:{{(())}}

相关内容

  • 没有找到相关文章

最新更新