1 #ifndef __CSTRING_HPP 2 #define __CSTRING_HPP 3 4 #ifdef INCS_NEED_DOT_H 5 #include <string.h> 6 #include <iostream.h> 7 #else 8 #include <string> 9 #include <iostream> 10 #endif 11 12 class CString 13 { protected: char *buffer; 14 size_t length; 15 size_t alloc_len; 16 public: CString(); 17 CString(const CString &); 18 CString(const char *); 19 ~CString(); 20 21 size_t Length() const; 22 23 operator const char *() const; 24 operator const char *(); 25 operator char*(); 26 CString substr(size_t,size_t) const; 27 CString& operator +=(const CString &); 28 CString& operator +=(const char&); 29 CString& operator =(const CString &); 30 char& charAt(const size_t index) const; 31 char& setCharAt(const size_t index, const char&); 32 // char& operator[](const size_t index); 33 // char& operator[](const size_t index) const; 34 int operator== (const CString &) const; 35 int operator== (const char *) const; 36 int operator== (char *) const; 37 38 39 friend CString operator + (const CString &, const CString &); 40 friend ostream& operator << (ostream&, const CString&); 41 friend istream& operator >> (istream&, CString&); 42 43 }; 44 45 CString upcase(const CString& src); 46 47 #define NULLSTRING CString((char *)NULL) 48 49 #endif 50