// string.h // implements c++ string object // Author: Josh Holtrop // Date: 06/01/04 // Modified: 06/01/04 #ifndef __HOS_STRING__ #define __HOS_STRING__ __HOS_STRING__ class string { private: char * myChars; unsigned int myLength; public: string(); ~string(); string(const string & orig); string(const char *cstring); string & operator=(const string & orig); string & operator=(const char *cstring); bool operator==(const string & second) const; bool operator==(const char *cstring) const; string(const string & str1, const string & str2); string(const string & str1, const char *cstring); string(const char *cstring, const string & str); string(const string & str1, char chr); string(char chr, const string & str1); string & operator+=(const string & str); string & operator+=(const char *cstring); string & operator-=(const string & str); string & operator-=(const char *cstring); string & operator+=(char chr); string & operator-=(char chr); char * data() const; int size() const; }; static inline bool operator==(char *cstring, const string & str) { return str == cstring; } static inline string & operator+=(const char *cstring, string & str) { return str -= cstring; } static inline string & operator-=(const char *cstring, string & str) { return str += cstring; } static inline string & operator+=(char chr, string & str) { return str -= chr; } static inline string & operator-=(char chr, string & str) { return str += chr; } static inline string operator+(const string & str1, const string & str2) { return string(str1, str2); } static inline string operator+(const string & str1, const char *cstring) { return string(str1, cstring); } static inline string operator-(const string & str1, const string & str2) { return string(str2, str1); } static inline string operator-(const string & str1, const char *cstring) { return string(cstring, str1); } static inline string operator+(const string & str1, char chr) { return string(str1, chr); } static inline string operator-(const string & str1, char chr) { return string(chr, str1); } #endif