00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef GSTRING_H
00012 #define GSTRING_H
00013
00014 #include <aconf.h>
00015
00016 #ifdef USE_GCC_PRAGMAS
00017 #pragma interface
00018 #endif
00019
00020 #include <string.h>
00021
00022 class GString {
00023 public:
00024
00025
00026 GString();
00027
00028
00029 GString(const char *sA);
00030
00031
00032
00033 GString(const char *sA, int lengthA);
00034
00035
00036 GString(GString *str, int idx, int lengthA);
00037
00038
00039 GString(GString *str);
00040 GString *copy() { return new GString(this); }
00041
00042
00043 GString(GString *str1, GString *str2);
00044
00045
00046 static GString *fromInt(int x);
00047
00048
00049 ~GString();
00050
00051
00052 int getLength() { return length; }
00053
00054
00055 char *getCString() { return s; }
00056
00057
00058 char getChar(int i) { return s[i]; }
00059
00060
00061 void setChar(int i, char c) { s[i] = c; }
00062
00063
00064 GString *clear();
00065
00066
00067 GString *append(char c);
00068 GString *append(GString *str);
00069 GString *append(const char *str);
00070 GString *append(const char *str, int lengthA);
00071
00072
00073 GString *insert(int i, char c);
00074 GString *insert(int i, GString *str);
00075 GString *insert(int i, const char *str);
00076 GString *insert(int i, const char *str, int lengthA);
00077
00078
00079 GString *del(int i, int n = 1);
00080
00081
00082 GString *upperCase();
00083 GString *lowerCase();
00084
00085
00086
00087 int cmp(GString *str) { return strcmp(s, str->getCString()); }
00088 int cmpN(GString *str, int n) { return strncmp(s, str->getCString(), n); }
00089 int cmp(const char *sA) { return strcmp(s, sA); }
00090 int cmpN(const char *sA, int n) { return strncmp(s, sA, n); }
00091
00092 private:
00093
00094 int length;
00095 char *s;
00096
00097 void resize(int length1);
00098 };
00099
00100 #endif