#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* reverse1(char *c)
{
int len = strlen(c) ;
char *dest = (char*)malloc( sizeof(char)*len+1 ) ;
char *p = dest ;
char *src = &c[len-1] ;
while(src>=c)
*p++ = *src-- ;
*p = '\0' ;
return dest ;
}
void reverse2(char *c)
{
char temp ;
int len = strlen(c) ;
for(int i=0 ;i<(len/2) ;i++)
{
temp = c[i] ;
c[i] = c[(len-1)-i] ;
c[(len-1)-i] = temp ;
}
}
int main()
{
char c[] = "hello world!" ;
char *dest = NULL ;
printf("逆序前:%s\n",c) ;
dest = reverse1(c) ;
printf("逆序后:%s\n" ,dest);
free(dest) ;
printf("逆序前:%s\n",c) ;
reverse2(c) ;
printf("逆序后:%s\n",c) ;
}