字符串的逆序存储

题目:将输入的字符串逆序存储,要求不能改变原字符串。例如:str="Hello world",str2="dlrow olleH".

#include <iostream>
#include <assert.h>
#include <string>
using namespace std;

void StringReverse(const char* str, int len, char *str2)
{
   assert(str);

   for(int i = len; i > 0; i--) {
      *(str2++) = *(str+i-1);            //str+len指向str末端的'\0',所以得减1. 
   }
   *(str2+len-1) = '\0';
 
}

int main()
{
   char *str = "hello world";
   char *str2 = (char *)malloc(strlen(str)+1);
   StringReverse(str,strlen(str),str2);
   printf("%s,%s\n",str,str2);
}

PS:代码可能还不够健壮,求高手指点。

原文地址:https://www.cnblogs.com/guotao/p/2809809.html