擴充string類

來源:互聯網
上載者:User
/*    * Copyright (c) 2013, 煙台大學電腦學院    * All rights reserved.    * 檔案名稱:text.cpp    * 作者:胡穎    * 完成日期:2013年5月6日    * 版本號碼:v1.0    *    * 輸入描述:無    * 問題描述:字元的加減重載* 程式輸出:輸出處理後的字串   * 問題分析:    * 演算法設計:略    */        #include <iostream>#include<Cstring>using namespace std;class String{public:            String();            String (const char *s);            String (String &str);            ~String();            void display();            friend String operator+(String &s1,String &s2);            friend String operator-(String &s1,String &s2);private:            char *p;            int len;};String::String(){    len=0;    p=NULL;}String::String (const char *s){    len=strlen(s);    p=new char[len+1];    strcpy(p,s);}String::String (String &str){    len=str.len;    p=new char[len+1];    strcpy(p,str.p);}String::~String(){    if(!p)    delete []p;}void String::display(){    cout<<p;}String operator+(String &s1,String &s2){    String s;    s.len=s1.len+s2.len;    s.p=new char(s.len+1);    strcpy(s.p,s1.p);    strcat(s.p,s2.p);    return s;}String operator-(String &s1,String &s2){    String s;    char *c1=new char[s1.len+1];    strcpy(c1,s1.p);    int i=s1.len-1;    while(i>=0&&c1[i]==' ')--i;    c1[i+1]='\0';    char*c2=new char[s2.len+1];    strcpy(c2,s2.p);     i=0;    while(i<s2.len&&c2[i]==' ')++i;    int j=0;    while(i<s2.len&&c2[i]!='\0')    {        c2[j]=c2[i];        ++i;        ++j;    }    c2[j+1]='\0';    s.len=strlen(c1)+strlen(c2);    s.p=new char(s.len+1);    strcpy(s.p,c1);    strcat(s.p,c2);    delete c1;    delete c2;    return s;}int main(){    String string1("hello"),string2("world");    string1.display();    cout<<endl;    String string3;    string3=string1+string2;    string3.display();    return 0;}

運行結果:

心得體會:雖然有些還是不太明白,但是先把這程式背下來了,相信會慢慢懂得

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.