读书人

反转字符串解决方法

发布时间: 2013-02-24 17:58:56 作者: rapoo

反转字符串


谢谢!
因为你的str++ 最后指针指的位置已经改变
正确做法
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);
}

读书人网 >C语言

热点推荐