#ifndef _STRING_HPP_ #define _STRING_HPP_ #include #include class String { public: enum{MaxResourceString=128}; enum{MaxString=128}; String(void); String(const char *npStr); String(const String &newString); String(int resourceID,HINSTANCE hInstance); virtual ~String(); int operator!=(const String &someString)const; int operator==(const String &someString)const; int operator<(const String &someString)const; int operator<=(const String &someString)const; int operator=(const String &someString); int operator=(const char *someCharStar); int operator+=(const String &someString); int operator+=(const char *someStr); operator char *(); int reserve(unsigned nBytes); int token(const char *token); void upper(void); int strstr(const char *string)const; int isNull(void)const; private: char *mnpStr; }; inline String::String() : mnpStr(0) { reserve(MaxString); } inline String::String(const char *npStr) : mnpStr(0) { if(!::strlen(npStr))return; mnpStr=new char[::strlen(npStr)+1]; ::strcpy(mnpStr,npStr); } inline String::String(const String &newString) : mnpStr(0) { if(!::strlen(newString.mnpStr))return; mnpStr=new char[::strlen(newString.mnpStr)+1]; ::strcpy(mnpStr,newString.mnpStr); } inline String::~String() { if(mnpStr)delete mnpStr; } inline String::operator char *() { return mnpStr; } inline int String::isNull(void)const { if(!mnpStr||(mnpStr&&!*mnpStr))return 1; return 0; } #endif