定义一个字符串STR,实现字符串的拼接,通过重载运算符实现类中的数据的拼接,如有必要,可定义其他辅助函数与赋值运算符重载函数。具体要求如下
私有数据成员
char*s 数据成员存放字符串
公有成员函数
STR() :构造函数,以形参初始化数据成员
friend STR& operator+(STR& str1, STR& str2) :重载函数实现类中字符串的拼接
void print() :输出数据成员
~STR() : 析构函数释放动态内存
检测
对所定义的类进行测试,以abcd和12345为测试数据,
实现他们的拼接,并把拼接后的字符串对象付给新的对象。
输入:abcd 12345
输出:abcd12345
#include<iostream>
#include<string>
using namespace std;
class STR
{
private:
char* s;
public:
STR(char* p = 0);
friend STR& operator+(STR& str1, STR& str2)
{
STR str3;
string s1, s2,s3;
int i,j=0;
s1 = str1.s;
s2 = str2.s;
s3 = s1 + s2;
char c[30];
for ( i = 0; i < 30; i++)
{
if (s1[i] == '\0')
break;
c[i] = s1[i];
}
while (s2[j] != '\0')
{
c[i] = s2[j];
j++;
i++;
}
c[i] = '\0';
cout << c << endl;
str3.s = c;
return str3;
}
void print()
{
cout << *s << endl;
}
~STR(){}
};
STR::STR(char* p )
{
s = p;
}
int main()
{
char c1[15], c2[15];
cin >> c1 >> c2;
STR s1(c1), s2(c2),s3;
s3 = s1 + s2;
s3.print();
return 0;
}