1. char* strrev(char* s)  

  2. {  

  3.     /* h指向s的头部 */  

  4.     char* h = s;      

  5.     char* t = s;  

  6.     char ch;  

  7.   

  8.     /* t指向s的尾部 */  

  9.     while(*t++){};  

  10.     t--;    /* 与t++抵消 */  

  11.     t--;    /* 回跳过结束符'\0' */  

  12.   

  13.     /* 当h和t未重合时,交换它们所指向的字符 */  

  14.     while(h < t)  

  15.     {  

  16.         ch = *h;  

  17.         *h++ = *t;    /* h向尾部移动 */  

  18.         *t-- = ch;    /* t向头部移动 */  

  19.     }  

  20.   

  21.     return(s);  

  22. }