C++ string 字符串

本文将对string相关操作进行汇总

[一篇全面的string总结博客](https://blog.csdn.net/qq_37941471/article/details/82107077?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param)

通用例子:string str = "wonker";

一、字符串长度-str.size(),或str.length()

  二者没有区别,size()是和STL通用algorithms保持一致,length()是兼容C语言strlen()的写法。

 

 

二、查找子串位置-使用find()函数

  find()返回第一次找到子串的下标,返回类型 size_type,也可以直接用int接收。没找到就返回一个特殊标string::npos。

  查找某一给定位置后的子串的位置:str.find("e",2)。第二个参数是指定位置的下标。

  所以查找字符串中所有符合要求的字符或子串,可以使用 while((position=str.find(flag,position))!=string::npos)。

  其中,position是查找位置,初始值为0。flag是指定的字符或子串。每次更新查找位置,从前往后查找,找不到的时候就跳出循环。

三、截取子串-str.substr(position, n)

       str.substr(position, n)    截取s中从position开始(包括0)的n个字符的子串,并返回。

       str.substr(position)        截取s中从从position开始(包括0)到末尾的所有字符的子串,并返回。

 

四、替换子串-str.replace(position, n, s1)

         str.replace(position, n, s1)    用s1替换str中从position开始(包括0)的n个字符的子串。

五、 插入删除操作-str.insert(position, s1);str.erase(str.begin()+i, str.end()-j);

  

posted @ 2020-04-12 14:12  知亦行  阅读(412)  评论(0编辑  收藏  举报