C 的自定義的string類

2021-08-03 08:44:03 字數 1850 閱讀 2270

標頭檔案:

#pragma once

#include"iostream"

using namespace std;

#include"string.h"

class mystring

const char *p_p3()

int length()

};實現的cpp檔案:

#include"mystring.h"

mystring::mystring()

mystring::mystring(const char *p)

else

}mystring::mystring(const mystring &p)

mystring::~mystring()

}//實現的效果是這樣的

mystring& mystring::operator=(const char *p)

if(p!=null)else

return *this;

}//這個就是t1=t2那種型別

mystring& mystring::operator=(const mystring &p)

this->len=strlen(p.p);

this->p=new char[this->len+1];

strcpy(this->p,p.p);

return *this;

}//這個是為了使用自定義的陣列型別

char& mystring::operator(int index)

//輸出

ostream& operator<<(ostream &out,mystring &p)

//輸入

istream& operator>>(istream &in,mystring &p)

//下面兩個都是判斷相等1

bool mystring::operator==(const char *p)const

else

}bool mystring::operator==(const mystring &p)const

else

}//下面這個是不等於的情況

bool mystring::operator!=(const char *p)const

else

}bool mystring::operator!=(const mystring &p)const

else

}//大於小於的比較

bool mystring::operator<(const char *p)const

return false;

}bool mystring::operator<(const mystring &p)const

return false;

}bool mystring::operator>(const char *p)const

return false;

}bool mystring::operator>(const mystring &p)const

return false;

}測試的**:

#include"iostream"

using namespace std;

#include"mystring.h"

#include"string.h"

void main1()

void main2()else

if(s1!="s21")else

//判斷s1和s2是否相等

system("pause");

}void main()else

if(s1>"abc")else

char p=s1.p_p2();

cout}

c 自定義string類

1.標頭檔案部分 define crt secure no warnings pragma once include includeusing namespace std class mystring 2.函式定義部分 include mystring.h mystring mystring mys...

自定義string類

在學習c 過程中,相比起使用char 或者是char陣列,使用 string 類對字串進行操作要方便快速很多。string 並不是c 的基本資料型別,它實際上是乙個類,那麼這個類具體是怎麼實現對字串的操作的呢?如何去自定義乙個類去實現string類同樣的效果呢?首先,先列舉一些 string 類可以...

自定義string類

所需知識點 strcpy arg1,arg2 會把arg2的內容賦值給arg1,直到 0 為止,複製結束後會在arg1後加乙個 0 strlen 返回字串長度,只會返回 0 前字串的長度,如 123 0qweqr 返回值為3 std cin 遇到空格或回車符就結束輸入,遇到回車或eof會讀入 std...