前言:对于一个刚接触C语言的人来说,写个简单的字符串操作函数简直是要了我的命,刚开始看网上的大神写的代码的时候觉得很简单,自己想了一会之后觉得自己动手写肯定是没问题,可是当我自己写的时候(在不看他们代码的前提下,完全用自己的逻辑)真的是觉得自己只会理论上的可以,真的是纸老虎,所以想当个的程序员,必须要自己动手了!
下面是运行的结果: ./a.out new str = adss
第一个:我在遍历到整个字符串的最后时,我没有加*str = '\0';因为我觉得是他本身就是个字符串,肯定有'\0';所以我就没加,运行了这个程序,结果是new str = adssss;但是我还是没有明白,然后我调试了下,想到了,因为指针p是指向字符串str的,当p指向第二个s之后,p把指向的字符s覆盖了字符串str的ff,使得字符串str变成了"adssss",但是指针p已经遍历了整个字符串了,所以必须使得字符串str在字符s的后面加上'\0'这样才是正确的。
第二个:我之前觉得我对while和for循环真的是烂熟于心了,但是在写这个代码的时候,我是真的菜,写完这个代码之后我有点明白了。