安丘网站建设报价,品牌设计的原则有哪些,设计类素材网站,wordpress小程序 标签定义一个MyString类#xff0c;实现两个字符串连接。要求定义类的数据成员为字符指针#xff0c;实现深拷贝函数。
要求#xff1a;不能使用string,可以使用cstring中的 strcpy 、strcat、strcmp以及strlen( )等函数
已知测试函数如下#xff1a;
int m…定义一个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(); coutendl; str1.MyStrcat(str2); str2.MyStrcat(str1); str4.MyStrcat(str1); str4.MyStrcat(str2); str1.display(); str2.display(); str3.display(); str4.display(); coutendl; 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;
}