#include<iostream>
#include<string>
using namespace std;
string findReplace( string str,string find,string replace) {
int pos= 0 ;
while ( true ) {
pos = str.find ( find) ;
if ( pos == - 1 ) break ;
str.replace ( pos, find.length ( ) ,replace ) ;
}
return str;
}
string findErase( string str,string find) {
int pos= 0 ;
while ( true ) {
pos = str.find ( find) ;
if ( pos == - 1 ) break ;
str.erase ( pos, find.length ( ) ) ;
}
return str;
}
int main( ) {
string str,find,replace,erase;
cout << "enter the string: " ;
getline( cin ,str) ;
cout << "enter the word you want to find: " ;
getline( cin ,find) ;
cout << "do you wish to erase it or to replace it?(erase,replace)" ;
string wish;
getline( cin ,wish) ;
if ( wish== "erase" || wish== "Erase" ) {
str = findErase( str, find) ;
cout << "result: " << str << endl;
}
else if ( wish== "replace" || wish== "Replace" ) {
cout << "enter the replace: " ;
getline( cin ,replace) ;
str = findReplace( str, find, replace) ;
cout << "result: " << str << endl;
}
else {
cout << "invalid input" << endl;
cout << "the valid words are:(erase , Erase , replace , Replace)" ;
}
return 0 ;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cmluZyBmaW5kUmVwbGFjZShzdHJpbmcgc3RyLHN0cmluZyBmaW5kLHN0cmluZyByZXBsYWNlKXsKICAgIGludCBwb3M9MDsKICAgIHdoaWxlKHRydWUpewogICAgICAgIHBvcyA9IHN0ci5maW5kKGZpbmQpOwogICAgICAgIGlmIChwb3MgPT0gLTEpIGJyZWFrOwogICAgICAgIHN0ci5yZXBsYWNlKHBvcywgZmluZC5sZW5ndGgoKSxyZXBsYWNlICk7CiAgICAgICAgCiAgICB9CiAgICByZXR1cm4gc3RyOwp9CgpzdHJpbmcgZmluZEVyYXNlKHN0cmluZyBzdHIsc3RyaW5nIGZpbmQpewogICAgaW50IHBvcz0wOwogICAgd2hpbGUodHJ1ZSl7CiAgICAgICAgcG9zID0gc3RyLmZpbmQoZmluZCk7CiAgICAgICAgaWYgKHBvcyA9PSAtMSkgYnJlYWs7IAogICAgICAgIHN0ci5lcmFzZShwb3MsIGZpbmQubGVuZ3RoKCkpOwogICAgfQogICAgcmV0dXJuIHN0cjsKfQoKCmludCBtYWluKCl7CnN0cmluZyBzdHIsZmluZCxyZXBsYWNlLGVyYXNlOwpjb3V0PDwiZW50ZXIgdGhlIHN0cmluZzogIjsKZ2V0bGluZShjaW4sc3RyKTsKY291dDw8ImVudGVyIHRoZSB3b3JkIHlvdSB3YW50IHRvIGZpbmQ6ICI7CmdldGxpbmUoY2luLGZpbmQpOwpjb3V0PDwiZG8geW91IHdpc2ggdG8gZXJhc2UgaXQgb3IgdG8gcmVwbGFjZSBpdD8oZXJhc2UscmVwbGFjZSkiOwpzdHJpbmcgd2lzaDsKZ2V0bGluZShjaW4sd2lzaCk7CmlmKHdpc2g9PSJlcmFzZSJ8fHdpc2g9PSJFcmFzZSIpewogICAgc3RyID0gZmluZEVyYXNlKHN0ciwgZmluZCk7CiAgICAKICAgIGNvdXQgPDwgInJlc3VsdDogIiA8PCBzdHIgPDwgZW5kbDsKfQplbHNlIGlmKHdpc2g9PSJyZXBsYWNlInx8d2lzaD09IlJlcGxhY2UiKXsKY291dDw8ImVudGVyIHRoZSByZXBsYWNlOiAiOwpnZXRsaW5lKGNpbixyZXBsYWNlKTsKICAgIHN0ciA9IGZpbmRSZXBsYWNlKHN0ciwgZmluZCwgcmVwbGFjZSk7CiAgICAKICAgIGNvdXQgPDwgInJlc3VsdDogIiA8PCBzdHIgPDwgZW5kbDsKfQplbHNlewogICAgY291dDw8ImludmFsaWQgaW5wdXQiPDxlbmRsOwogICAgY291dDw8InRoZSB2YWxpZCB3b3JkcyBhcmU6KGVyYXNlICwgRXJhc2UgLCByZXBsYWNlICwgUmVwbGFjZSkiOwp9CnJldHVybiAwOwp9