关于string中erase,find,replace的一点个人理解

比如: string str="abcdefgh";

如果执行   str.erase(str.begin()+2); 就是把c删除掉了。cout<<str结果为:abdefgh 

str.erase(str.begin()+i) (i=0,1,2,3,4,5...)  +i 就是表示删除第 i+1 位的值.

如果执行  int b = str.find("d",0); 就是从第0个(就是第一个数)开始搜索,直到搜到第一个数值为d的数为止  

cout<<b ;执行结果为 :  3

如果执行 int b = str.find("ef",0); 就是从第0个(就是第一个数)开始搜索,直到搜到第一个"def"为止,然后返回d的坐标

cout<<b ;执行结果为 :  4

但是没有搜到的话会返回 -1  就是说比如  int b = str.find("te",0);  b的值就为-1 .

str.find("...",i); 表示从第i+1个数开始搜索

str.replace(替换的首地址,替换的个数,想要替换上去的字符串 );

比如  str.replace(0,3,"asfas"); cout<<str 的结果为: asfasdefgh;

 

posted @ 2020-11-27 19:27  爱努力的人最幸福  阅读(184)  评论(0)    收藏  举报