• string类的常用方法


    string

    •  string()  创建一个默认的string类,长度为0(默认构造函数)
    string str();
    •  string(const char*s)  将string对象初始化为s指向的字符串
    string str("hello")
    • string(const char *c,size_t n) 将字符串前五个字符初始化给string对象
    string str("hello word",5);
    • string (const string &str)  将一个string对象初始化为string对象str(复制构造函数)
    1. string str("hello");
    2. string str2(str)
    • string (const string &str,size_t pos,size_t len =npos)将str中pos位置往后npos个字符初始化给string对象
    1. string str("hello");
    2. string str1(str,3,2); ///lo
    • string (size_t n, char c); 初始化string对象10个c字符

    1. string str(10,'x');
    2. string str(10,42);42的ascll是'*';
    1. #include
    2. #include
    3. #include
    4. using namespace std;
    5. int main()
    6. {
    7. string str("hello word");
    8. string str1(str);
    9. string str2(str,5,2);
    10. string str3("hello word",5);
    11. string str4(10,42);
    12. cout<<"str:"<"\nstr1:"<"\nstr2:"<"\nstr3:"<"\nstr4:"<
    13. return 0;
    14. }

    2. string::append

    在当前字符串末尾附加字符串

     用法基本都差不多

    这里就直接上代码了

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. string str("hello");
    7. str.append("ZZZZ");
    8. str.append("BBBBBBBB",2,4);
    9. str.append("CCCC");
    10. str.append("GGGGGGGGG",4);
    11. str.append(4,'H');
    12. cout<
    13. return 0;
    14. }

    3.string::assgin

    为字符串指定一个新的值,替换当前内容

     

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello");
    6. str.assign("AAAA");
    7. cout<
    8. str.assign("BBBBBBBB",2,4);
    9. cout<
    10. str.assign("XXXXXXXX");
    11. cout<
    12. str.assign("GGGGGGGG",4);
    13. cout<
    14. str.assign(4,'K');
    15. cout<
    16. return 0;
    17. }

     4.string::at

    返回string中pos位置的字符

     

    5. string::back

    返回最后一个字符

    6. string::begin(如果是rbegin表示指向字符串最后一个字符)

    返回指向第一个字符的迭代器

    7.string::end(如果是rend表示指向第一个字符)

    指向结尾字符后面的位置

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello word");
    6. for(auto it=str.begin();it!=str.end();it++)//返回值是迭代器类型所以用auto自动推>导
    7. {
    8. printf("%c",*it);
    9. }
    10. return 0;
    11. }

    8. string::c_str

    获取c字符串 

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. string str("hello word bit");
    7. char* cstr=new char[str.length()+1];
    8. strcpy(cstr,str.c_str());
    9. cout<
    10. return 0;
    11. }

    9.string::clear

    删除字符串变成空

     10.string::copy

    将字符串对象当前值的子字符串复制到由s指向的数组中。该子字符串包含从位置pos开始的len字符。

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello word");
    6. char buf[20];
    7. size_t length=str.copy(buf,4,6);
    8. buf[length]='\0';
    9. cout<
    10. return 0;
    11. }

    11.string ::erase

    删除元素

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("this ccc an bbbb apple");
    6. cout<
    7. str.erase(5,4);
    8. cout<
    9. str.erase(str.begin()+8);//删除第8个字符
    10. cout<
    11. str.erase(str.begin()+8,str.end()-6);
    12. cout<
    13. return 0;
    14. }

     12string::find

     return:

    成功:第一个匹配的第一个字符的位置。
    失败:函数返回string::npos。

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("The journey has not been made has in vain");
    6. string str2("has");
    7. size_t found=str.find(str2);
    8. if(found!=string::npos)
    9. {
    10. cout<<"first 'has' found at:"<
    11. }
    12. found=str.find("has",found+1,3);
    13. if(found!=string::npos)
    14. {
    15. cout<<"second 'has' found at:"<
    16. }
    17. found=str.find("not");
    18. if(found!=string::npos)
    19. {
    20. str.replace(found,str2.length(),"DDDDD");
    21. }
    22. cout<
    23. return 0;
    24. }

    13.string::find_frist_not_of

    在字符串中搜索与参数中指定的任何字符都不匹配的第一个字符。

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello word");
    6. string str1("has");
    7. size_t found= str.find_first_not_of(str1,0);
    8. cout<
    9. found= str.find_first_not_of("has",0);
    10. cout<
    11. found=str.find_first_not_of("has",2,3);
    12. cout<
    13. found=str.find_first_not_of('l',0);
    14. cout<
    15. return 0;
    16. }

     13.string::find_last_not_of

    在字符串中搜索与参数中指定的任何字符都不匹配的最后一个字符。

     14.string::insert

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello word");
    6. str.insert(0,"BBB");
    7. cout<
    8. str.insert(0,"AAACCCDDD",3,3);
    9. cout<
    10. str.insert(0,"GGGGGGG",3);
    11. cout<
    12. str.insert(0,3,'E');
    13. cout<
    14. str.insert(str.begin(),'Q');
    15. cout<
    16. return 0;
    17. }

        15.string::reserve

        16.string::substr

     17.string::swap

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str("hello word");
    6. string str1("bit");
    7. str1.swap(str);
    8. cout<
    9. return 0;
    10. }

     

  • 相关阅读:
    MySQL优化01-索引
    搭建CNFS文件系统
    做过启动盘的U盘怎么复原?三种方法教你
    华为L3VPNv4 over SRv6 BE配置案例
    Qml-跨窗口拖动图片、物体
    PwnTheBox 刷题记录crypto篇
    综述向:强化学习方法梳理(持续更新)
    死锁的Demo,产生条件
    官网下载mysql 8.0.27及安装
    黑苹果安装常见问题汇总
  • 原文地址:https://blog.csdn.net/weixin_58389786/article/details/126404825