Вы не указали, как именно вы получаете строку, но рассматриваете:
std::string str = "{{((A+b)-xyz)addf}sss}";
Вы можете использовать идиому erase-remove
.Мы указываем пользовательское средство удаления, которое будет функцией (на самом деле лямбда-функтором), которая будет проверять, не является ли символ фигурной скобкой или скобкой.
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
превратится в: {{(())}}
.