关于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;

浙公网安备 33010602011771号