我还是个C++初学者,请各位高手帮帮忙改改这个程序~谢谢啊~

2025-03-02 00:08:54
推荐回答(1个)
回答1:

//String_new.h
#ifndef __STRING_H_
#define __STRING_H_

#include

class String
{
public:
String (char *p);
String ( );
~String ( );
String &operator+(String &str2);
int operator -(String &str2);
friend bool operator >(String &str1,String &str2);
void SetString(char*p);
char *Getstring(void);
private:
char *ph;
};

#endif

//String_new.cpp
#include
#include"String_new.h"

String::String(char *p)
{
ph=new char [strlen(p)+1];
strcpy(ph,p);
cout<}

String::String()
{
ph=0;
}

String::~String()
{
if(ph){
cout<delete []ph;
}
}

String &String::operator +(String &str2)
{

char *temp=new char [strlen(ph)+strlen(str2.Getstring())+1];
strcpy(temp,ph);
strcat(temp,str2.Getstring());

return String(temp);
}

int String ::operator -(String &str2)
{
if (strcmp(ph,str2.ph)>0)
return 1;
if (strcmp(ph,str2.ph)==0)
return 0;
else
return -1;

}

bool operator >(String &str1,String &str2)
{
if( strcmp(str1.ph,str2.ph)>0)
return true;
else
return false;
}

void String::SetString(char *p)
{
if(ph)
delete []ph;
ph=new char [strlen(p)+1];
strcpy(ph,p);
}

char *String::Getstring(void)
{
return ph;
}

//MainString.cpp
#include"String_new.h"
int main()
{
String str1("Keep");
String str2("Smile");
String str0;

str0.SetString("cry");
cout<cout<<(str1-str2)<cout<<(str1>str2)<return 0;
}