Strings.cpp
Upload User: dq031136
Upload Date: 2022-08-08
Package Size: 802k
Code Size: 2k
Development Platform:

C++ Builder

  1. class Strings {
  2.    char *p;
  3.    int size;
  4.  public:
  5.    Strings(char *str);
  6.    Strings(void);
  7.    Strings(const Strings &obj);           // Copy constructor
  8.    ~Strings(void) {delete [] p;}
  9.    friend ostream &operator<<(ostream &stream, Strings &obj);
  10.    friend istream &operator>>(istream &stream, Strings &obj);
  11.    Strings operator=(Strings &obj);       // assign a Strings object
  12.    Strings operator=(char *s);            // assign a quoted string
  13.    Strings operator+(Strings &obj);       // concatenate a Strings object
  14.    Strings operator+(char *s);            // concatenate a quoted string
  15.    friend Strings operator+(char *s, Strings &obj);
  16.             /* concatenates a quoted string with a Strings object */
  17.    Strings operator-(Strings &obj);       // subtract a Strings object
  18.    Strings operator-(char *s);            // subtract a quoted string
  19.  /* relational operators between Strings objects. Note that the operators could
  20.     just as easily return bool, rather than int */
  21.    int operator==(Strings &obj) {return !strcmp(p, obj.p);}
  22.    int operator!=(Strings &obj) {return strcmp(p, obj.p);}
  23.    int operator<(Strings &obj) {return strcmp(p, obj.p) < 0;}
  24.    int operator>(Strings &obj) {return strcmp(p, obj.p) > 0;}
  25.    int operator<=(Strings &obj) {return strcmp(p, obj.p) <= 0;}
  26.    int operator>=(Strings &obj) {return strcmp(p, obj.p) >= 0;}
  27.  /* relational operators between Strings object and a quoted character string.
  28.     Note that the operators could just as easily return bool, rather than int */
  29.    int operator==(char *s) {return !strcmp(p, s);}
  30.    int operator!=(char *s) {return strcmp(p, s);}
  31.    int operator<(char *s) {return strcmp(p, s) < 0;}
  32.    int operator>(char *s) {return strcmp(p, s) > 0;}
  33.    int operator<=(char *s) {return strcmp(p, s) <= 0;}
  34.    int operator>=(char *s) {return strcmp(p, s) >= 0;}
  35.    int strsize(void) {return strlen(p);}      // return string size
  36.    void makestr(char *s) (strcpy(s, p);}  // make quoted string from Strings object
  37.    operator char *(void) {return p;}          // conversion to char
  38.  }