/*用法一:用str替换指定字符串从起始位置pos开始 长度为为len的字符串string &replace(size_t pos, size_t len, const string& str)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a test string!"; s=s.replace(s.find("@"),1,""); cout< <
/*用法二:用str替换 迭代器 起始位置 和 结束位置的字符串string &replace(const_iterator i1, const_iterator i2, const string& str)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; s=s.replace(s.begin(),s.begin()+6,""); cout< <
/*用法三:用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串string &replace(size_t pos, size_t len, const string& str, size_t subpos, size_t sublen)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; string str="12345"; s=s.replace(0,5,str,str.find("1"),3); //用str的指定子串(从1位置数共3个字符)替换从0到5位置上的s cout< <
/*用法四:**string转char*时编译器可能会报出警告,不建议这样做**用str替换从指定位置0开始长度为5的字符串string &replace(size_t pos, size_t len, const char*s)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; char* str="12345"; s=s.replace(0,5,str); //用str替换从指定位置0开始长度为5的字符串 cout< <
/*用法五:**string转char*时编译器可能会报出警告,不建议这样做**用str替换从指定迭代器位置的字符串string &replace(const_iterator i1, const_iterator i2, const char* s)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; char* str="12345"; s=s.replace(s.begin(),s.begin()+9,str); //用str替换从指定迭代器位置的字符串 cout< <
/*用法六:**string转char*时编译器可能会报出警告,不建议这样做**用s的前n个字符替换从开始位置pos长度为len的字符串string& replace(size_t pos, size_t len, const char* s, size_t n)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; char* str="12345"; s=s.replace(0,9,str,4); //用str的前4个字符替换从0位置开始长度为9的字符串 cout< <
/*用法七:string转char*时编译器可能会报出警告,不建议这样做 用s的前n个字符替换指定迭代器位置(从i1到i2)的字符串 string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n); */ int main() { string line = "this@ is@ a test string!"; char* str = "12345"; line = line.replace(line.begin(), line.begin()+9, str, 4); //用str的前4个字符替换指定迭代器位置的字符串 cout << line << endl; return 0; }
/*用法八:用重复n次的c字符替换从指定位置pos长度为len的内容string &replace(size_t pos, size_t len, size_t, char c)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; char c='z'; s=s.replace(0,9,3,c); //用重复3次的c字符替换从指定位置0长度为9的内容 cout< <
/*用法九:用重复n次的c字符替换从指定迭代器位置的内容string &replace(const_iterator i1, const_iterator i2, size_t, char c)*/#include using namespace std;typedef long long ll;const double eps = 1e-7;const int maxn = 5e5 + 5;const double pi = acos(-1.0);int main(){ string s="this is@ a@ test string!"; char c='z'; s=s.replace(s.begin(),s.begin()+9,3,c); //用重复3次的c字符替换从指定位置0长度为9的内容 cout< <