學習資料結構寫了乙個string的類,貼出來求指教
#ifndef ******string_h_h
#define ******string_h_h
#include #include #include #define defaultsize 128
class ******string
//maxsize為傳入引數的string
******string(const char * init);
******string(const ******string & a); //拷貝建構函式
~******string()
int getlength()
bool isempty() //空則返回1
void empty()
int search(******string& a) const;
int search(const char* p) const;
void makeupper();
void makelower();
void makereverse();
void trimall();
void trimleft();
void trimright();
void insert(int nindex,char c);
void delete(int n);
void deletefromto(int m,int n);
******string& operator = (char * p);
******string& operator = (******string& a);
******string operator + (const ******string& s) const;
******string operator + (const char * p) const;
******string& operator += (const ******string& ob);
******string& operator += (const char * p);
// friend void operator<(const ******string& a,const ******string& b);
friend ostream& operator<<(ostream& out,******string& ou);
friend istream& operator>>(istream& in,******string& i);
operator const char*()
char& operator(int i); //取第i個字元
int operator == (******string& a) const
//判斷串是否相等,不相等返回1,相等返回0;
friend bool operator<(const ******string& a,const ******string& b);
friend bool operator>(const ******string& a,const ******string& b);
};******string::******string()
******string::******string(const char * init)
******string::******string(const ******string & a)
ch[i]='\0';
curlength=i;
maxsize=a.maxsize;
}int ******string::search(******string& a) const }}
void ******string::makelower() }}
void ******string::makereverse()
if(nindex>=curlength&&curlength0&&curlength==maxsize-1)
ch[mm]='\0';
curlength=mm;
deletetemp;
return;
}******string& ******string::operator = (char * p)
******string& ******string::operator = (******string& a)else
return *this;
}******string ******string::operator + (const ******string& s) const
******string ******string::operator + (const char * p) const
******string& ******string::operator += (const ******string& ob)
maxsize=m+1;
curlength=n;
strcpy(ch,temp);
strcat(ch,ob.ch);
delete temp;
return *this;
}******string& ******string::operator += (const char * p)
maxsize=m+1;
curlength=n;
strcpy(ch,temp);
strcat(ch,p);
delete temp;
return *this;
}ostream& operator<<(ostream& out,******string& ou)
} return true;
}bool operator>(const ******string& a,const ******string& b)
} return true;
}#endif
主函式的實現
//#include "stdafx.h"
#include #include #include "******string.h"
int main(int argc, char* argv)
{ ******string a; //空建構函式
// a.insert(1,'a');
// a.delete(2);
// a.deletefromto(1,3);
******string b("bbbb"); //接收乙個字串指標(char *)的建構函式
******string c(b); //拷貝建構函式
******string d;
a="abcd"; //= 過載
d=a;
b=b+d; //+ 過載
b=b+"ebbb";
b+=c; //+= 過載
b+="dddd";
aa;******string e;
cin>>e; //流插入
cout<
string類的實現
參考c primer.string類的實現,清翔兔 06,jan.includeusing namespace std class string string void private char m data inline string string const char str inline st...
string類的實現
include using namespace std class string public string const char str 0 普通建構函式 string const string other 拷貝建構函式 string void 析構函式 string operator const...
string類的實現
string類有兩種實現方式 一 class string else string string const string s 拷貝構造引數 string operator const string s 賦值運算子過載 return this private char p 二.建構函式和析構函式都和...