/*(4)定义一个类String,为指针变量str动态申请空间并初始化。其要求如下:
私有成员:char *str;
公有成员:String(char *p); //构造函数,用参数对数据成员初始化。
void reverser(); //功能为实现对字符串的逆序排序。
void print(); //功能为输出数据成员。
~String(); //析构函数。
设计一个完整程序对该类进行测试, 如字符串为“student”通过调用对象的成员函数得到“tneduts”。
*/
#include <iostream>
#include <string>
using namespace std;
class String
{
private:
char* str;
public:
String(char* p)//构造函数,用参数对数据成员初始化。
{
str = new char[100];
strcpy(str,p);
}
void reverser()//功能为实现对字符串的逆序排序。
{
char *p1 = &str[0] ;
char* p2 = &str[strlen(str) - 1];
while (p1 < p2)
{
char* t = 0;;
*t = *p1;
*p1 = *p2;
*p2 = *t;
p1++;
p2--;
}
}
void print() //功能为输出数据成员。
{
cout << str << endl;
}
~String() //析构函数。
{
delete[]str;
}
};
int main()
{
char a[100] = "Hello World!";
String s(a);
s.print();
s.reverser();
s.print();
return 0;
}
一运行就报错,应该怎么改问题在哪
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 丨秋水丨 2022-05-12 18:08关注
t应该是char类型,而不是char*类型。
void reverser()//功能为实现对字符串的逆序排序。 { char *p1 = &str[0] ; char* p2 = &str[strlen(str) - 1]; while (p1 < p2) { char t ; t = *p1; *p1 = *p2; *p2 = t; p1++; p2--; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
- ¥15 MATLAB中streamslice问题
- ¥15 如何在炒股软件中,爬到我想看的日k线
- ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
- ¥15 seatunnel 怎么配置Elasticsearch
- ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
- ¥15 (标签-MATLAB|关键词-多址)
- ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
- ¥500 52810做蓝牙接受端
- ¥15 基于PLC的三轴机械手程序