计算机小混子 2022-05-12 17:54 采纳率: 100%
浏览 15
已结题

一运行就报错,应该怎么改问题在哪

img


/*(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;
}
  • 写回答

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--;
            }
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?