本文主要是介绍c++程序设计定义一个MyString类,实现两个字符串连接。要求定义类的数据成员为字符指针,实现深拷贝函数。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
定义一个MyString类,实现两个字符串连接。要求定义类的数据成员为字符指针,实现深拷贝函数。
要求:不能使用<string>,可以使用<cstring>中的 strcpy 、strcat、strcmp以及strlen( )等函数
已知测试函数如下:
int main()
{
MyString str1("Hello");
MyString str2(" World!");
MyString str3(str1);
MyString str4;
str1.display();
str2.display();
str3.display();
cout<<endl;
str1.MyStrcat(str2);
str2.MyStrcat(str1);
str4.MyStrcat(str1);
str4.MyStrcat(str2);
str1.display();
str2.display();
str3.display();
str4.display();
cout<<endl;
return 0;
}
#define _CRT_SECURE_NO_WARNINGS#include <iostream>
#include <cstring>
using namespace std;class MyString
{
public:MyString(const char* ch = NULL);MyString(const MyString& S);void MyStrcat(MyString& S);~MyString();void display();private:char* str;};MyString::MyString(const char* ch)
{if (ch == NULL) {str = new char[1];*str = '\0';}else{str = new char[strlen(ch) + 1];strcpy(str, ch);}}MyString::MyString(const MyString& S) :str(new char[strlen(S.str)])
{strcpy(str, S.str);}MyString::~MyString()
{if (str)delete[] str;
}
void MyString::MyStrcat(MyString& S)
{strcat(str, S.str);
}
void MyString::display()
{int len = strlen(str);for (int i = 0; i < len; i++){cout << str[i];}cout << endl;
}
int main()
{MyString str1("Hello");MyString str2(" World!");MyString str3(str1);MyString str4;str1.display();str2.display();str3.display();cout << endl;str1.MyStrcat(str2);str2.MyStrcat(str1);str4.MyStrcat(str1);str4.MyStrcat(str2);str1.display();str2.display();str3.display();str4.display();cout << endl;return 0;
}
这篇关于c++程序设计定义一个MyString类,实现两个字符串连接。要求定义类的数据成员为字符指针,实现深拷贝函数。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!