string類是stl裡面個乙個基礎類,同時也是乙個容器。stl在string類裡面塞了很多東西,大概有106個成員函式,以及大量的typedef、巨集,晦澀難懂。本文只是簡單通過物件導向的方法簡單實現了乙個string,以後會在此基礎進行擴充和改進。
#ifndef mystring_h
#define mystring_h
#include#includenamespace chu
mystring(const char* p);//construct from a c-style string
mystring(char ch, int n);//construct from repeated charcter
mystring(int number);//construct string representation of integer
mystring(const mystring& rstr);//copy constructor
~mystring();
int length()const //return length excluding terminating null
int find(char ch)const; //find the occurrence of a character
int find(const char* pstring)const;//find the occurrence of c-style string
int find(const mystring& rstring)const;///find the occurrence of a mystring as a sub-string
void show()const;//output the string
mystring& operator=(const mystring& str);//overloaded assignment operator
mystring operator+(const mystring& str);//string concatenation
const char& operator(int index)const;//subscript operator for const objects
char& operator(int index);//subscript operator for non-const objects
/*comparison operator all return type bool*/
bool operator==(const mystring& rstr)const;
bool operator!=(const mystring& rstr)const;
bool operator<(const mystring& rstr)const;
bool operator>(const mystring& rstr)const;
//return an object corresponding to a substring
mystring operator()(int index, size_t length)const;
//overloaded input and output operator
friend std::istream& operator>>(std::istream& in, mystring& str);
friend std::ostream& operator<<(std::ostream& out, mystring& str);
};}#endif
#include"mystring.h"
#include#includenamespace chu
mystring::mystring(char ch, int n)
*(pstr+strlen) = '\0';
} mystring::mystring(int num)
strlen = count;
std::cout<<"s"<= 0; --i, ++j )
else
if(j == length)
if(j > 0 && j < length)
++i;
}std::cout<(const mystring& rstr)const
mystring mystring::operator()(int index, size_t length)const
temp[i] = '\0';
if(!str.pstr)
delete str.pstr;
str.pstr = new char[i+1];
strcpy(str.pstr,temp);
str.strlen = i;
} std::ostream& operator<<(std::ostream& out, mystring& str)
else
{ out<
string類的簡單實現
include class string string string const char ch else string string const string str string string string string operator const string str string stri...
自己實現簡單的string類
1.前言 最近看了下 c primer 覺得受益匪淺。不過紙上得來終覺淺,覺知此事須躬行。今天看了類型別,書中簡單實現了string類,自己以前也學過c 不過說來慚愧,以前都是用c來寫程式,學的c 基本都忘記了,也說明自己以前對c 的理解不夠深入。基於這些,覺得有必要動手來寫寫c 的一些程式了,畢竟...
自己實現簡單的string類
1.前言 最近看了下 c primer 覺得受益匪淺。不過紙上得來終覺淺,覺知此事須躬行。今天看了類型別,書中簡單實現了string類,自己以前也學過c 不過說來慚愧,以前都是用c來寫程式,學的c 基本都忘記了,也說明自己以前對c 的理解不夠深入。基於這些,覺得有必要動手來寫寫c 的一些程式了,畢竟...