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