昨天实现了c语言的字符串拼接 今天就实现基于c++的字符串拼接 (当然我没有考虑写类与类的相加
只是写了类与字符串的相加 代码很垃圾 仅供参考)
#include<iostream>
using namespace std;
class MyString
{
public:
int beforeleng;
int afterleng;
char*pstr;
MyString(char*str)
{
this->afterleng=0;
for(int i=0;1;i++)
{
if(str[i]=='\0')
{
this->beforeleng=i;
break;
}
}
this->pstr=new char[this->beforeleng+1];
for(int i=0;i<=this->beforeleng;i++)
{
if(i!=this->beforeleng)
{
pstr[i]=str[i];
}
if(i==this->beforeleng)
{
pstr[i]='\0';
}
}
}
char* operator+(char*Str)// 实现类与类的相加 只需要在这里改变参数就行 同样返回值也需要改
{
//cout<<str[0];
for(int i=0;1;i++)
{
if(Str[i]=='\0')
{
this->afterleng=i;
break;
}
}
char*tempstr=new char[this->beforeleng+this->afterleng+1];
for(int i=0;i<=this->beforeleng+this->afterleng;i++)
{
if(i<=this->beforeleng-1)
{
tempstr[i]=this->pstr[i];
}
if(this->beforeleng<=i&&i<=this->beforeleng+this->afterleng-1)
{
tempstr[i]=Str[i-this->beforeleng];
}
if(i==this->beforeleng+this->afterleng)
{
tempstr[i]='\0';
}
}
delete [] this->pstr;
this->pstr=tempstr;
tempstr=NULL;
this->beforeleng=this->beforeleng+this->afterleng;
return this->pstr;
}
};
int main()
{//测试
MyString Str("ssss");
Str+"dsd";
cout<<Str+"gcvdhjusbvakdv";
}