方法一:
缺点:需要提前定义大一点的数组
//参数:原始字符串,目标字符串
void reverseStr(char *str,char *dist)
{
int i=0;
char *p=str;
while(*p)
{
p++;
}
while((p-str>0))
{
p--;
dist[i++]=*p;
}
}
int main()
{
char *str="123";
char dist[10]={0};
reverseStr(str,dist);
cout<<dist<<endl;
return 0;
}
方法二:
缺点:需要申请并释放
//参数:原始字符串,目标字符串
void reverseStr(char *str,char **dist)
{
if(str==NULL)
return ;
int i=0;
char *p=str;
*dist=new char[strlen(str)+1];
memset(*dist,0,strlen(str)+1);
while(*p)
{
p++;
}
while((p-str>0))
{
p--;
(*dist)[i++]=*p;
}
(*dist)[i]='\0';
}
int main()
{
char *str="123";
char *dist={0};
reverseStr(str,&dist);
cout<<dist<<endl;
delete []dist;
dist=NULL;
return 0;
}