日期:2014-05-20 浏览次数:20851 次
//不要被结束符忽悠
void reverse(char *str) {//传入一个指向字符串的指针str
char * end = str;//把指针str赋给指针end,于是2个指针指向同一个位置
char tmp;//临时变量,你懂的
if (str) {//如果指针存在
while (*end) {//end指针指向的位置一直后移,直到指向结束符'\0'的下一个跳出while,只是end指向结束符'\0'
++end;
}
--end;//end指针前移一位,指向字符串最后一位
while (str < end) {//当str指针在end指针之前的时候交换
tmp = *str;//end和str指针指向的位置上的字符对换,换完之后str后移,end前移
*str++ = *end;
*end-- = tmp;
}
}
}