我的代码将编译并运行,但输出是乱码。它实际上只是一堆或随机符号和几个字母。
这是我的代码:
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。
现在没有错误,但是反向句子没有打印出来,只是乱七八糟。
答案 0 :(得分:1)
您需要从字符串的末尾开始打印,而不是从缓冲区的末尾开始打印。