Listing 7 The class TempString

// just a mechanism for self deleting
// strings which can be hacked
class TempString
{
private:
  char *str;
public:
  // create a TempString from a char *
  TempString(const char *s)
  {
    str= new char[strlen(s) + 1];
    strcpy(str, s);
  }
  
  // create a TempString from a substring of char *
  TempString(const char *s, int len)
  {
    str= new char[len + 1];
    if(len) strncpy(str, s, len);
    str[len]= '\0';
  }
  
  // remove storage when done
  ~TempString(){ delete [] str; }
  
  // convert a TempString into a char *
  operator char*() const { return str; }
};
// End of File