#if 1
#include<stdlib.h>
#include<iostream>
using namespace std;
char* Reverse(char* s)
{
//将q指向字符串最后一个字符
char* q = s ;
int j=0;
while( *q++ )
{
j++;
}
cout<<j<<endl;
q-=2;//为何要减去2?
//分配空间,存储逆序后的字符串。
char* p = new char[sizeof(char) * (q - s + 2)] ;
char* r = p ;
// 逆序存储
while(q >= s)
*p++ = *q-- ;
*p = '\0' ;
return r ;
}
int main()
{char *m="1234567";
char *n=Reverse(m);
cout<<n<<endl;
system("pause");
return 0;
代码运行无问题,功能已实现了逆序。但是调试的时候发现while中居然有两次空格,请求帮忙解答。