#include <iostream>
#include <string>
#include <algorithm>
#include <assert.h>
void RemoveCharacterFromString(char character_for_remove, std::string &string) {
auto it = std::remove_if(std::begin(string), std::end(string),
[=](char c) { return c == character_for_remove; });
string.erase(it, std::end(string));
}
void RemoveAllCharactersInRangeFromString(char from, char to,
std::string &string) {
assert(from <= to);
for (auto curr_character = from; curr_character <= to; ++curr_character) {
RemoveCharacterFromString(curr_character, string);
}
}
int main() {
std::string string = "aaa bbb ccc ddd ccc fff eee ggg fff";
RemoveAllCharactersInRangeFromString('c', 'f', string);
std::cout << "after remove: " << string << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8YXNzZXJ0Lmg+Cgp2b2lkIFJlbW92ZUNoYXJhY3RlckZyb21TdHJpbmcoY2hhciBjaGFyYWN0ZXJfZm9yX3JlbW92ZSwgc3RkOjpzdHJpbmcgJnN0cmluZykgewogIGF1dG8gaXQgPSBzdGQ6OnJlbW92ZV9pZihzdGQ6OmJlZ2luKHN0cmluZyksIHN0ZDo6ZW5kKHN0cmluZyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFs9XShjaGFyIGMpIHsgcmV0dXJuIGMgPT0gY2hhcmFjdGVyX2Zvcl9yZW1vdmU7IH0pOwogIHN0cmluZy5lcmFzZShpdCwgc3RkOjplbmQoc3RyaW5nKSk7Cn0KCnZvaWQgUmVtb3ZlQWxsQ2hhcmFjdGVyc0luUmFuZ2VGcm9tU3RyaW5nKGNoYXIgZnJvbSwgY2hhciB0bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgJnN0cmluZykgewogIGFzc2VydChmcm9tIDw9IHRvKTsKICBmb3IgKGF1dG8gY3Vycl9jaGFyYWN0ZXIgPSBmcm9tOyBjdXJyX2NoYXJhY3RlciA8PSB0bzsgKytjdXJyX2NoYXJhY3RlcikgewogICAgUmVtb3ZlQ2hhcmFjdGVyRnJvbVN0cmluZyhjdXJyX2NoYXJhY3Rlciwgc3RyaW5nKTsKICB9Cn0KCmludCBtYWluKCkgewogIHN0ZDo6c3RyaW5nIHN0cmluZyA9ICJhYWEgYmJiIGNjYyBkZGQgY2NjIGZmZiBlZWUgZ2dnIGZmZiI7CiAgUmVtb3ZlQWxsQ2hhcmFjdGVyc0luUmFuZ2VGcm9tU3RyaW5nKCdjJywgJ2YnLCBzdHJpbmcpOwogIHN0ZDo6Y291dCA8PCAiYWZ0ZXIgcmVtb3ZlOiAiIDw8IHN0cmluZyA8PCAnXG4nOwp9