.h file class definition
Class cstring {public: cstring (); cstract (const cstring & stratag); cstring (const char * sztag);
Virtual ~ cstring (); public: char * getBuffer ();
Public: cstring & operator = (const char * strtag); cstring & operator = (const cstring & strat); CSTRING & OPERATOR (const char * szadd); CSTRING & OPERATOR (Const Cstring & StRTAG);
Public: void initdata; Friend Ostream & Operator << (Ostream & OS, Const Cstring & Strout);
Private: char * m_pszdata; int m_nbuflen;
.Cpp file
#include "cstring.h"
CSTRING :: CString () {m_pszdata = null; m_nbufflen = 1; m_pszdata = new char [m_nbufflen]; m_pszdata [0] = '/ 0';}
CString :: ~ cstring () {if (m_pszdata) {delete m_pszdata; m_pszdata = null; m_nbufflen = 0;}}
Void cstring :: initdata (const char * szinit) {if (m_pszdata) {delete m_pszdata; m_pszdata = null; m_nbuflen = 0;} int Nlen = strlen (szinit); m_pszdata = new char [Nlen 1]; if (m_pszdata ) {Strncpy (m_pszdata, szinit, nlen); m_pszdata [nlen] = '/ 0'; m_nbuflen = Nlen 1;}}
CString :: CString (const cstring & stragg) {m_pszdata = null; m_nbuflen = 0; initdata (strtag.m_pszdata);}
CSTRING :: CString (const char * sztag) {m_pszdata = null; m_nbuflen = 0; initdata (sztag);}
CString & CString :: operator (const char * szAdd) {int nLenthis = strlen (m_pszData); int nLenAdd = strlen (szAdd); char * pAdd = new char [nLenthis nLenAdd 1]; strncpy (pAdd, m_pszData, nLenthis 1); strcat (padd, szadd);
STATIC CSTRING Stradd; Stradd = Padd; delete PADD;
Return stradd;
CString & CString :: operator (const CString & strTag) {return operator (strTag.m_pszData);} CString & CString :: operator = (const char * szTag) {int nTagLen = strlen (szTag); char * pszAdd = new char [nTagLen 1]; if (pszadd) {strncpy (pszadd, sztag, ntaglen 1); m_nbuflen = NTAGLEN 1;
Delete m_pszdata; m_pszdata = pszadd;} return * this;}
CSTRING & CSTRING :: Operator = (const cstring & strat) {return.com = (strtag.m_pszdata);}
Ostream & Operator << (Ostream & OS, Const CString & Strout) {os << strout.m_pszdata; return os;}
Char * cstring :: getBuffer () {return m_pszdata;}
////// Test program The test program ///////////////////bit
Void main () {CSTRING STR1 ("Hello"); CSTRING STR2 ("World!"); cstring str3; cout << "http://www.5701.com em: wenjin@5701.com" << end1; Cout << "class cstring by wenjin 2005.3" << endl; cout << "------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------- "Endl; cout <<" define cstring str1 (/ "hello /"); "<< Endl; cout <<" define cstring str2 (/ "world! /"); " << Endl; cout << "define cstring str3;" Endl << endl; cout << "para str1 =" << "para str2 =" << "para str2 =" << Str2 << ENDL COUT << "para str3 =" << str3 << endl << Endl;
Cout << "str1 / '/' str2 =" << str1 "" str2 << endl << endl; cout << "do str3 = str1 / '/' str2" << end1; str3 = str1 " str2; cout <<" now str3 = "<< str3 << endl << endl; cout <<" NOW Define CString STR4 (STR3); << Endl; CString STR4 (STR3); cout << " Para str4 = "<< str4 << endl << endl; cout <<" Output endd.press enter to quit << Endl; cin.peek ();