题目:将输入的字符串逆序存储,要求不能改变原字符串。例如: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:代码可能还不够健壮,求高手指点。