00001 00004 #ifndef _VUSTRING_H_ 00005 #define _VUSTRING_H_ 00006 00007 #include <iostream.h> 00008 #include "../vuSimpleTypes.h" 00009 00012 class vuString 00013 { 00014 public: 00016 vuString(); 00018 vuString(char c); 00020 vuString(const char *s); 00022 vuString(int i); 00024 vuString(long l); 00026 vuString(unsigned long ul); 00028 vuString(const vuString& s); 00030 ~vuString(); 00031 00033 dword getLength(void) const; 00035 bool isEmpty() const; 00037 bool hasPrefix(const vuString &prefix) const; 00039 bool hasSuffix(const vuString &suffix) const; 00041 00042 vuString& empty(void); 00043 00044 /*** some file name related methods ***********************/ 00047 vuString getLastPathComponent() const; 00048 00052 vuString getPathExtension() const; 00053 00054 /**********************************************************/ 00055 00057 int compare(const vuString& s) const; 00059 vuString substr(dword start,dword end) const; 00060 00062 vuString& operator=(const vuString& rhs); 00064 vuString operator+(const vuString& rhs) const; 00066 vuString& operator+=(const vuString& rhs); 00068 vuString& operator<<(const vuString& rhs); 00070 char& operator[](dword index); 00072 char operator[](dword index) const; 00077 bool operator==(const vuString& rhs) const; 00078 00083 bool operator!=(const vuString& rhs) const; 00084 00089 bool operator<(const vuString& rhs) const; 00090 00095 bool operator>(const vuString& rhs) const; 00096 00101 bool operator<=(const vuString& rhs) const; 00102 00107 bool operator>=(const vuString& rhs) const; 00108 00110 vuString& operator=(const char* rhs); 00112 vuString operator+(const char* rhs) const; 00114 vuString& operator+=(const char* rhs); 00116 vuString& operator<<(const char* rhs); 00117 00121 bool operator==(const char* rhs) const; 00122 00126 bool operator!=(const char* rhs) const; 00127 00132 bool operator<(const char* rhs) const; 00133 00138 bool operator>(const char* rhs) const; 00139 00144 bool operator<=(const char* rhs) const; 00145 00150 bool operator>=(const char* rhs) const; 00151 00153 operator const char*() const { return m_Data; }; 00155 const char* c_str() const { return m_Data; }; 00156 00158 friend ostream& operator<<(ostream& in,const vuString& rhs); 00162 friend vuString operator+(const char *str,const vuString &rhs); 00163 00164 private: 00165 char* m_Data; 00166 }; 00167 00168 #endif