利用双指针翻转字符串
目标:
编写函数reverse_string,其原型为void reverse_string( char *string );
函数把参数字符串中的字符反向排列。要求使用指针而不是数组下标,不能使用任何C函数库中用于操纵字符串的函数
思路:
使用双指针不断向字符串中间推进并进行字符交换,当两个指针相遇或擦肩而过时即停止
代码:
void reverse_string( char *str )
{
char *last_char;
for( lase_char=str;*last_char!='\0';last_char++ )
;
last_char--;
/*交换str和last_char指向的字符,然后str前进一步,
**last_char后退一步,在两个指针相遇或擦肩而过之前重复这个过程
*/
while( str<last_char )
{
char temp;
temp=*str;
*str++ = *last_char;
*last_char-- = temp;
}
}