反转字符串函数

    技术2022-05-20  66

    char* RevertString(char * str) { int len; int i; len = strlen(str); char * ret = new char[strlen(str)]; for (i=len-1;i>=0;i--) { ret[len-i-1] = str[i]; } ret[len]=0; return ret; }

     

    写的当中出现了一点问题就是如果直接修改传进来的参数str的话,会出现一个voilation writing location的错误,应该是地址上面值是readonly造成的吧,现在的算法是直接新建一个char * ret = new char[strlen(str)]的字符串数组,上面可以进行修改。

    另外还有一个问题就是因为char的分配的话一分配就是16个字节,如果不是正好16个字母的话,会发生后面有乱码出现,只有将ret[len]=0了之后,输出的时候就不会有后面的乱码,并且长度也会变成真实的长度了。


    最新回复(0)