#ifndef GSTRING_H
#define GSTRING_H
#include <config.h>
#ifdef USE_GCC_PRAGMAS
#pragma interface
#endif
class GString {
public:
GString();
GString(const char *sA);
GString(const char *sA, int lengthA);
GString(GString *str, int idx, int lengthA);
GString(GString *str);
GString *copy() { return new GString(this); }
GString(GString *str1, GString *str2);
static GString *fromInt(int x);
~GString();
int getLength() { return length; }
char *getCString() { return s; }
char getChar(int i) { return s[i]; }
void setChar(int i, char c) { s[i] = c; }
GString *clear();
GString *append(char c);
GString *append(GString *str);
GString *append(const char *str);
GString *append(const char *str, int lengthA);
GString *insert(int i, char c);
GString *insert(int i, GString *str);
GString *insert(int i, const char *str);
GString *insert(int i, const char *str, int lengthA);
GString *del(int i, int n = 1);
GString *upperCase();
GString *lowerCase();
int cmp(GString *str);
int cmpN(GString *str, int n);
int cmp(const char *sA);
int cmpN(const char *sA, int n);
private:
int length;
char *s;
void resize(int length1);
};
#endif