#include <string>
using namespace std;
class string_ex : public string
{
public:
using string::replace; // 继承父类的全部replace重载函数
string_ex(const char *s);
void replace(const char *s1, const char *s2);
};
string_ex::string_ex(const char *s) : string(s)
{
}
void string_ex::replace(const char *s1, const char *s2)
{
int len1 = strlen(s1);
int len2 = strlen(s2);
int pos = 0;
while ((pos = find(s1, pos)) != -1)
{
replace(pos, len1, s2);
pos += len2;
}
}
int main(void)
{
string_ex str = "this is a string.";
str.replace("is", "IS");
cout << str << endl;
str.replace("t", "M");
cout << str << endl;
str = "12212";
str.replace("12", "21");
cout << str << endl;
str = "mmmmmm";
str.replace("m", "n");
cout << str << endl;
}
