// File: String.h
// partial solution to various string class homeworks
// preliminary version of String class
#include <stddef.h>
#include <fstream.h>
#include <string.h>
#ifndef String_H
#define String_H

class String {
   private:
      unsigned int BufferLen;
      char* Buffer;
      void MakeBuffer(int nchars);
   public:
      String( const char* = NULL );
      String( const String& );
      String( int size );
      ~String();
      const String& operator=( const String& );
      const char operator[]( int )const;
      int Length() const{ return strlen(Buffer);};
      operator char*( ) const { return Buffer; };
      friend ostream& operator<<( ostream&, const String& );
      friend istream& operator>>( istream&, String& );
      friend bool operator<( const String&, const String& );
      friend bool operator>( const String&, const String& );
      friend bool operator==( const String&, const String& );
      friend bool operator!=( const String&, const String& );
      friend const String operator+( const String&, const String& );
};

#endif
