70,032
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <stdlib.h>
void reverse( char* str )
{
char temp;
char *end = str;
printf( "Original string is: %s\n", str );
while( *end )
{
end++;
}
end--;
while( str < end )
{
temp = *str;
*str = *end;
str++;
*end = temp;
end--;
}
printf( "Reversed string is: %s\n", str );
return;
}
int main( void )
{
char str[] = "abcd";
reverse( str );
system( "pause" );
return 0;
}


char* strrev(char* s)
{
/* h指向s的头部 */
char* h = s;
char* t = s;
char ch;
/* t指向s的尾部 */
while(*t++){};
t--; /* 与t++抵消 */
t--; /* 回跳过结束符'\0' */
/* 当h和t未重合时,交换它们所指向的字符 */
while(h < t)
{
ch = *h;
*h++ = *t; /* h向尾部移动 */
*t-- = ch; /* t向头部移动 */
}
return(s);
}
void reverse( char* str )
{
char * out = str;
char temp;
char *end = str;
printf( "Original string is: %s\n", str );
while( *end )
{
end++;
}
end--;
while( str < end )
{
temp = *str;
*str = *end;
str++;
*end = temp;
end--;
}
printf( "Reversed string is: %s\n", out);
return;
}