zoukankan      html  css  js  c++  java
  • string那些事之replace

    /*
    用法一:
    用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!
    
    
    
  • 相关阅读:
    孤荷凌寒自学python第六十五天学习mongoDB的基本操作并进行简单封装4
    孤荷凌寒自学python第六十四天学习mongoDB的基本操作并进行简单封装3
    孤荷凌寒自学python第六十三天学习mongoDB的基本操作并进行简单封装2
    孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1
    孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务
    孤荷凌寒自学python第六十天在windows10上搭建本地Mongodb数据服务
    孤荷凌寒自学python第五十九天尝试使用python来读访问远端MongoDb数据服务
    C++ 虚函数表与内存模型
    最长公共子序列
    最长公共子字符串
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8997283.html
Copyright © 2011-2022 走看看