#ifndef MYSTRING_H
#define MYSTRING_H

#include <string>
#include <string.h>
#include <strings.h>
#include <stdio.h>

class MyString: public std::string
{
   public:
      MyString(const char c) : std::string(1,c) {};
      MyString(const char* c)
         : std::string(c==0?"":c)
      {};
      MyString(const std::string& s) : std::string(s) {};
      MyString() : std::string() {};
      
      int isEmpty() const {return empty();};
      MyString mid(int pos, int length=-1) const {return substr(pos,length);};
      MyString left(int len) const {return substr(0,len);};
      MyString right(int len) const
      {
         if (len<1) return "";
         else if (len<int(size())) return substr(size()-len);
         else return (*this);
      };

      int contains(char c);
      //char & operator[] (unsigned int i)    {return ((string)(*this))[i];}
      //operator const char* () const     {return c_str();}
      const char* data() const     {return c_str();}
      /*void setNum(int value) {char c[15]; bzero(c,15); sprintf(c,"%d",value); (*this)=c;};
      void setNum(double value) {char c[25]; bzero(c,25); sprintf(c,"%g",value); (*this)=c;};
      void simplifyWhiteSpace();*/
};

//taken from TQt/TQCString
MyString stripWhiteSpace(MyString str);

#endif

