如何使用指针程序来停止打印乱码?

时间:2014-05-08 00:44:41

标签: c++ pointers cstring

我的代码将编译并运行,但输出是乱码。它实际上只是一堆或随机符号和几个字母。

这是我的代码:

int main()
{
    char words[MAX];
    cout<<"This program will reverse your sentence.\n";


        cout<<"Please enter a sentence (up to 100 characters)\n";
        cin.getline(words,MAX);
        cout<<words<<"\n";
        sentence_reversal(words);
        cout<<endl;

    return 0;
}

void sentence_reversal(char a[])
{
    char *the_front;
    char *rear;
    int i=0;
    rear = &a[i];
    *rear=a[i];
    the_front=&a[i];
    *the_front=a[i];

    for(int i = MAX-1; i>=0; i--)
    {
        *rear=a[i];
        cout<<*rear;

    }
delete the_front;
delete rear;

return;
}

我已经重写了几十次这个代码并且一样多地查看了指针。我试图了解如何使用char数组和cstrings指针。最初我试图让指针the_front和后面指向函数中的char a [],但我收到了错误:

  

无法将char转换为* char。

现在没有错误,但是反向句子没有打印出来,只是乱七八糟。

1 个答案:

答案 0 :(得分:1)

您需要从字符串的末尾开始打印,而不是从缓冲区的末尾开始打印。