014 MyString

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
class MyString {
	char * p;
public:
	MyString(const char * s) {
		if( s) {
			p = new char[strlen(s) + 1];
			strcpy(p,s);
		}
		else
			p = NULL;

	}
	~MyString() { if(p) delete [] p; }
MyString(const MyString& ms) {
        if (ms.p) {
            p = new char[strlen(ms.p)+1];
            strcpy(p, ms.p);
        }
        else {
            p = NULL;
        }
    }

    MyString& operator=(const MyString & nstr) {
        if (nstr.p) {
            p = new char[strlen(nstr.p) + 1];
            strcpy(p,nstr.p);
        }
        else {
            p = NULL;
        }
        return *this;
    }
    void Copy(const MyString & str) {
        if (str.p) {
            p = new char[strlen(str.p) + 1];
            strcpy(p, str.p);
        }
        else {
            p = NULL;
        }
    }
    friend ostream & operator<< (ostream& o, const MyString & str) {
        string s = str.p;
        o << s;
        return o;

    }
};
int main()
{
	char w1[200],w2[100];
	while( cin >> w1 >> w2) {
		MyString s1(w1),s2 = s1;
		MyString s3(NULL);
		s3.Copy(w1);
		cout << s1 << "," << s2 << "," << s3 << endl;

		s2 = w2;
		s3 = s2;
		s1 = s3;
		cout << s1 << "," << s2 << "," << s3 << endl;
		
	}
}

posted @ 2022-02-19 22:46  icefield817  阅读(96)  评论(0编辑  收藏  举报