C语言。
void reverse(char *str) { char* end = str; char tmp; if (str) { while (*end) { ++end; } //执行完while后end指向了null,所以需要--end来回退一下。 --end; //头尾各自交换内容直到两个指针在中间碰头 while (str <end) { tmp = *str; *str++ = *end; *end-- = tmp; } } }
PS:这样做就不用额外分配空间了。