不分配额外空间,直接就地反转字符串,另外还要注意null字符。
void reverse(char *str)
{
char *end = str;
char tmp;
if (str)
{
while (*end)//找出字符串末尾
{
++end;
}
--end;//回退一个字符,最后一个为null的字符
/*从字符串首尾开始交换两个字符,直到两个指针在中间碰头*/
while (str < end)
{
tmp = *str;
*str++ =*end;
*end-- = tmp;
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-04 09:03:34