erase(2,3)表示从第2个位置开始,连续删除3个字符。
思路一:
新开辟一个数组,进行深拷贝,把要删的字符绕过去,深拷贝到新开辟的数组中,释放新开辟的数组,最后用_str指向新开辟的数组。
经过上一次的实现插入的经验,我先思考思路,确定思路正确后再编写代码

思路一还是很好想的,可我在想思路儿是时候却犯了难...
思路二:
我想不新开辟新的,只在_str 中进行操作,比如"abcdef"想删除bc,其实很好想,但是移动着的时候得到的最后结果却是adefef,后面那两个字符"ef"怎么处理呢?
我百思不得其解,最后询问了豆包,在这是我才知道字符串最后面的'\0'是终止符,是c/c++的终止标志,当看到'\0'的时候就会停止,所以后面的"ef"不用我们特殊处理把'\0'放在adef后面就可以了,就会自动停止。

运行结果:


结果是正确的!
总结
一定要多思考,多问为什么,多了解底层的设计,遇到不会的应巧妙地结合AI,多问,知道自己明白了为止。
谢谢大家!
&spm=1001.2101.3001.5002&articleId=154409909&d=1&t=3&u=27d68a76163f40859e126ab1aa560511)
344

被折叠的 条评论
为什么被折叠?



