C++问题 编译错误
来源:百度知道 编辑:UC知道 时间:2024/05/02 16:52:54
#include<iostream>
#include<string.h>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char stringtemp[1024];
char * str;
cout << "Enter a string: " << endl;
cin << stringtemp;
int len=(int)strlen(stringtemp);
str = new char(len);
strcpy(str , stringtemp);
delete [] stringtemp;
for (int i=len; i > 0; i--)
{
cout << *str[i-1] ;
delete str[i-1];
}
cout << endl;
return 0;
}
什么错误?
笔误
反过来也不对
#include<string.h>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char stringtemp[1024];
char * str;
cout << "Enter a string: " << endl;
cin << stringtemp;
int len=(int)strlen(stringtemp);
str = new char(len);
strcpy(str , stringtemp);
delete [] stringtemp;
for (int i=len; i > 0; i--)
{
cout << *str[i-1] ;
delete str[i-1];
}
cout << endl;
return 0;
}
什么错误?
笔误
反过来也不对
cin>>,方向反了
数组不能delete,把delete[] stringtemp去掉
str[i-1]是字符,没有前面的*,并且不能delete
<< 方向写反了吧...
>>
....
cin << stringtemp;
>>
对照自己程序,看哪出现问题了
#include<iostream>
#include<string.h>
using std::cout;
using std::cin;
using std::endl;
int main()
{
char stringtemp[1024];
char * str;
cout << "Enter a string: " << endl;
cin >> stringtemp;
int len=(int)strlen(stringtemp);
str = new char(len);
strcpy(str , stringtemp);
for (int i=len; i > 0; i--)
{
cout << str[i-1] ;
}
delete[]str;
cout << endl;
return 0;
}