home *** CD-ROM | disk | FTP | other *** search
- #ifndef STRING_H
- #define STRING_H
-
- #include <string>
-
- class String
- {
- std::string data;
- public:
- String()
- {}
- explicit String(char c)
- : data( 1, c )
- {}
- String(const char * str)
- : data( str )
- {}
- String(const String & str)
- : data( str )
- {}
- const String & operator=(const char * str)
- {
- data = str;
- return *this;
- }
- const String & operator=(const String & str)
- {
- data = str.data;
- return *this;
- }
- operator const char *()const
- {
- return data.c_str();
- }
-
- unsigned size()const
- {
- return data.size();
- }
- char operator[]( unsigned pos )const
- {
- if( pos >= data.size() ) // Åα«óÑα¬á «Γ¡¿¼áÑΓ óαѼ∩, ¡« ñѽáÑΓ ¬½áßß ¡áñѪ¡δ¼
- return 0;
- return data[ pos ];
- }
- bool empty()const
- {
- return data.size() == 0;
- }
- const String & operator+=(char c)
- {
- data += c;
- return *this;
- }
- const String & operator+=(const char * str)
- {
- data += str;
- return *this;
- }
- const String & operator+=(const String & str)
- {
- data += str;
- return *this;
- }
- int compare(const char * str)const
- {
- return data.compare( str );
- }
- int compare(const String & str)const
- {
- return data.compare( str );
- }
-
- static String convert( int number );
- static String convert( unsigned number );
- static String convert( float number );
- static String convert( double number );
- };
-
- inline bool operator==(const String & a, const String & b)
- {
- return a.compare( b ) == 0;
- }
- inline bool operator==(const char * a, const String & b)
- {
- return b.compare( a ) == 0;
- }
- inline bool operator==(const String & a, const char * b)
- {
- return a.compare( b ) == 0;
- }
-
- inline bool operator!=(const String & a, const String & b)
- {
- return !operator==( a, b );
- }
- inline bool operator!=(const char * a, const String & b)
- {
- return !operator==( a, b );
- }
- inline bool operator!=(const String & a, const char * b)
- {
- return !operator==( a, b );
- }
-
- inline String operator+(const String & a, const String & b)
- {
- return String(a) += b;
- }
- inline String operator+(const String & a, const char * b)
- {
- return String(a) += b;
- }
- inline String operator+(const String & a, char b)
- {
- return String(a) += b;
- }
-
- #endif //STRING_H