大家都知道c++中有乙個string類,由於正在學習類,就模仿c++中的string類寫了乙個自定義的string類,下面是自定義string類的簡單實現(fedora下實現)。
#ifndef __mystring__
#define __mystring__
#include using namespace std;
/***********************************
*class name:mystring
*creat time:2011.07.23
*last modify time:2011.07.23
*author:hahaya
***********************************/
class mystring
;#endif
#include #include #include #include "mystring.h"
using namespace std;
const int max_strlen = 200;
//建構函式和析構函式
////無參建構函式
mystring::mystring()
//帶乙個引數的建構函式
mystring::mystring(const char *str)
//拷貝建構函式,因為mystring類中有指標,故拷貝建構函式要重寫
mystring::mystring(const mystring &mystring)
//析構函式
mystring::~mystring()
//過載操作符
////過載=操作符
mystring& mystring::operator=(const mystring &mystring)
//過載+操作符
mystring& mystring::operator+(const mystring &mystring)
//過載+操作符
mystring& mystring::operator+(const char *str)
//過載+=操作符
mystring& mystring::operator+=(const mystring &mystring)
//過載+=操作符
mystring& mystring::operator+=(const char *str)
//過載==操作符
bool mystring::operator==(const mystring &mystring)
else
}//過載==操作符
bool mystring::operator==(const char *str)
else
}//過載!=操作符
bool mystring::operator!=(const mystring &mystring)
else
}//過載!=操作符
bool mystring::operator!=(const char *str)
else
}//過載操作符
char mystring::operator(int position)
//過載》操作符
//過載》操作符必須用友元函式,因為istream物件會用到mystring物件的私有成員str
istream& operator>>(istream &is, mystring &mystring)
//過載《操作符
ostream& operator<
//類方法
////求字串的長度
int mystring::length()
//將字串轉化成大寫
void mystring::uppercase()
}}//將字串轉化成小寫
void mystring::lowercase()}}
#include #include "mystring.h"
using namespace std;
int main()
if(str2 != str1)
//str4字串為world,str3串現在為helloworld
mystring str4("world");
str3 += str4;
cout << str3 << endl;
//輸出字串str4的第乙個字母
cout << "str4字串的第乙個字母為:" << str4[0] << endl;
//把字串str4的所有字母大寫
str4.uppercase();
cout << "str4所有字母大寫為:" << str4 << endl;
//把字串str4的所有字母小寫
str4.lowercase();
cout << "str4所有字母小寫為:" << str4 << endl;
return 0;
}
程式執行截圖 C 實現自定義string類
在一些c 筆試題裡,會有這樣一道題,那就是讓你自己實現乙個簡單的string類。自己在面試的時候就遇到過這個題。在這裡說一下自己是怎麼做的。主要包含一些基本的操作,建構函式 拷貝建構函式和析構函式。pragma once include using namespace std class mystr...
自定義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...