c++实现重载+运算符 实现字符串拼接

昨天实现了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";
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值