我如何得到句子反转使用指针程序停止打印出乱码

How do I get sentence reversal using pointers program to stop printing out jibberish?

本文关键字:程序 打印 指针 何得 句子      更新时间:2023-10-16

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

这是我的代码:

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;
}

我已经重写了这段代码几十次,并审查了指针。我试图了解如何使用指针与字符数组和cstring。最初我试图让指针the_front和rear指向char a[]在函数中,但我收到了错误:

不能将char转换为*char。

现在没有错误,但是颠倒的句子没有打印出来,只是胡诌。

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