u012734899
tmtyht520
2015-04-11 09:57

为什么字符串结尾有两个空格??

  • 请求
  • 指针
 #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中居然有两次空格,请求帮忙解答。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

3条回答