00001 #ifndef __STRING_HPP__
00002 #define __STRING_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <iostream>
00035 #include <string.h>
00036
00037 class String {
00038 private:
00039 char *buf;
00040 protected:
00041 public:
00042 String();
00043 String(const String& x);
00044 String(const char* t);
00045 String(const char* t, int len);
00046 String(char c);
00047
00048 ~String();
00049
00050 String& operator = (const String& y);
00051 String& operator = (const char* y);
00052 String& operator = (char c);
00053
00054 String& operator += (const String& y);
00055 String& operator += (const char* t);
00056 String& operator += (char c);
00057
00058 char& operator [] (int i);
00059 const char& operator [] (int i) const;
00060
00061 operator const char*() const;
00062 const char* chars() const;
00063
00064 unsigned int length() const;
00065 int empty() const;
00066
00067 int index(char c, int startpos = 0) const;
00068 int index(const String& y, int startpos = 0) const;
00069 int index(const char* t, int startpos = 0) const;
00070
00071 int contains(char c) const;
00072 int contains(const String& y) const;
00073 int contains(const char* t) const;
00074
00075 int contains(char c, int pos) const;
00076 int contains(const String& y, int pos) const;
00077 int contains(const char* t, int pos) const;
00078
00079 void upcase();
00080 friend String upcase(const String& x);
00081
00082 int gsub(const char* pat, const char* repl);
00083
00084 String before(int pos);
00085 String before(const String& x, int startpos = 0);
00086 String before(const char* t, int startpos = 0);
00087 String before(char c, int startpos = 0);
00088 String after(int pos);
00089 String after(const String& x, int startpos = 0);
00090 String after(const char* t, int startpos = 0);
00091 String after(char c, int startpos = 0);
00092
00093 int OK() const;
00094 };
00095
00096
00097 String operator + (const String& x, const String& y);
00098 String operator + (const String& x, const char* y);
00099 String operator + (const String& x, char y);
00100 String operator + (const char* x, const String& y);
00101
00102 int compare(const String& x, const String& y);
00103 int compare(const String& x, const char* y);
00104
00105 int operator==(const String& x, const String& y);
00106 int operator!=(const String& x, const String& y);
00107 int operator>(const String& x, const String& y);
00108 int operator>=(const String& x, const String& y);
00109 int operator<(const String& x, const String& y);
00110 int operator<=(const String& x, const String& y);
00111 int operator==(const String& x, const char* t);
00112 int operator!=(const String& x, const char* t);
00113 int operator>(const String& x, const char* t);
00114 int operator>=(const String& x, const char* t);
00115 int operator<(const String& x, const char* t);
00116 int operator<=(const String& x, const char* t);
00117
00118 String upcase(const String& x);
00119
00120 #endif