#include <string>
#include <algorithm>
#include <vector>
#include <iostream>
#include <cctype>
std::string optimize(std::string toBeProcessed, std::string toBeIgnored, char ch)
{
std::transform(toBeProcessed.begin(), toBeProcessed.end(), toBeProcessed.begin(), ::toupper);
std::transform(toBeIgnored.begin(), toBeIgnored.end(), toBeIgnored.begin(), ::toupper);
std::string test;
size_t start = 0;
while (start < toBeProcessed.size())
{
size_t n = toBeProcessed.find_first_not_of(toBeIgnored, start);
if ( n != std::string::npos)
{
toBeProcessed[n] = ch;
start = n+1;
}
else
break;
}
return toBeProcessed;
}
int main()
{
std::string out = optimize("abc123", "abc1", 'x');
std::cout << out;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2N0eXBlPgoKc3RkOjpzdHJpbmcgb3B0aW1pemUoc3RkOjpzdHJpbmcgdG9CZVByb2Nlc3NlZCwgc3RkOjpzdHJpbmcgdG9CZUlnbm9yZWQsIGNoYXIgY2gpCnsKICAgIHN0ZDo6dHJhbnNmb3JtKHRvQmVQcm9jZXNzZWQuYmVnaW4oKSwgdG9CZVByb2Nlc3NlZC5lbmQoKSwgdG9CZVByb2Nlc3NlZC5iZWdpbigpLCA6OnRvdXBwZXIpOwogICAgc3RkOjp0cmFuc2Zvcm0odG9CZUlnbm9yZWQuYmVnaW4oKSwgdG9CZUlnbm9yZWQuZW5kKCksIHRvQmVJZ25vcmVkLmJlZ2luKCksIDo6dG91cHBlcik7CiAgICBzdGQ6OnN0cmluZyB0ZXN0OwogICAgc2l6ZV90IHN0YXJ0ID0gMDsKICAgIHdoaWxlIChzdGFydCA8IHRvQmVQcm9jZXNzZWQuc2l6ZSgpKQogICAgewogICAgICAgIHNpemVfdCBuID0gdG9CZVByb2Nlc3NlZC5maW5kX2ZpcnN0X25vdF9vZih0b0JlSWdub3JlZCwgc3RhcnQpOwogICAgICAgIGlmICggbiAhPSBzdGQ6OnN0cmluZzo6bnBvcykKICAgICAgICB7IAogICAgICAgICAgICB0b0JlUHJvY2Vzc2VkW25dID0gY2g7CiAgICAgICAgICAgIHN0YXJ0ID0gbisxOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgIGJyZWFrOwogICAgfQogICAgcmV0dXJuIHRvQmVQcm9jZXNzZWQ7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjpzdHJpbmcgb3V0ID0gb3B0aW1pemUoImFiYzEyMyIsICJhYmMxIiwgJ3gnKTsKICAgIHN0ZDo6Y291dCA8PCBvdXQ7Cn0=