Roni-i
/*
用法一:
用str替换指定字符串从起始位置pos开始 长度为为len的字符串
string &replace(size_t pos, size_t len, const string& str)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//this is a test string!

/*
用法二:
用str替换 迭代器 起始位置 和 结束位置的字符串
string &replace(const_iterator i1, const_iterator i2, const string& str)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//s@ a@ test string!



/*
用法三:
用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串
string &replace(size_t pos, size_t len, const string& str, size_t subpos, size_t sublen)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//123is@ a@ test string!


/*
用法四:**string转char*时编译器可能会报出警告,不建议这样做**
用str替换从指定位置0开始长度为5的字符串
string &replace(size_t pos, size_t len, const char*s)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//12345is@ a@ test string!



/*
用法五:**string转char*时编译器可能会报出警告,不建议这样做**
用str替换从指定迭代器位置的字符串
string &replace(const_iterator i1, const_iterator i2, const char* s)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//12345a@ test string!



/*
用法六:**string转char*时编译器可能会报出警告,不建议这样做**
用s的前n个字符替换从开始位置pos长度为len的字符串
string& replace(size_t pos, size_t len, const char* s, size_t n)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//1234a@ test string!



/*用法七: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 <bits/stdc++.h>
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<<s<<endl;
}
//zzza@ test string!



/*
用法九:用重复n次的c字符替换从指定迭代器位置的内容
string &replace(const_iterator i1, const_iterator i2,  size_t, char c)
*/
#include <bits/stdc++.h>
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<<s<<endl;
}
//zzza@ test string!


分类:

技术点:

相关文章:

  • 2021-05-20
  • 2021-11-28
  • 2021-07-09
  • 2022-01-05
  • 2021-07-25
  • 2022-12-23
  • 2021-09-12
  • 2022-12-23
猜你喜欢
  • 2020-03-17
  • 2022-12-23
  • 2021-12-04
  • 2021-04-12
  • 2021-08-28
  • 2023-03-09
  • 2022-12-23
相关资源
相似解决方案