home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / microcrn / issue_40.arc / DAIMS.ARC / STRINGS.HXX < prev    next >
Text File  |  1988-02-10  |  1KB  |  53 lines

  1. #include <stream.h>
  2. #include <string.h>
  3. /* 
  4. -*++ class string: see pp 184-186 in Stroustrup 
  5. ** 
  6. ** (*++ history: 
  7. **      7 Dec 87    Bruce Eckel    Creation date
  8. ** ++*)
  9. ** 
  10. ** (*++ detailed: 
  11. ** ++*)
  12. */
  13.  
  14. class string {
  15. public:
  16.   struct srep {
  17.     char *s;
  18.     int n;
  19.   };
  20.   srep *p;
  21.  
  22.   string(char *);  // string x = "abc";
  23.   string();        // string x;
  24.   string(string &); // string x = string ...
  25.   string& operator=(char *);
  26.   string& operator=(string &);
  27.   ~string();
  28.   char & operator[](int i);
  29.   
  30.   char* stringp() { return p->s;}
  31.  
  32.   friend ostream& operator<<(ostream&, string&);
  33.   friend istream& operator>>(istream&, string&);
  34.   
  35.   friend int operator==(string &x, char *s)
  36.     { return strcmp(x.p->s, s) == 0;}
  37.  
  38.   friend int operator==(string &x, string &y)
  39.     { return strcmp(x.p->s, y.p->s) == 0;}
  40.  
  41.   friend int operator!=(string &x, char *s)
  42.     { return strcmp(x.p->s,s) != 0; }
  43.  
  44.   friend int operator!=(string &x, string &y)
  45.     { return strcmp(x.p->s,y.p->s) != 0; }
  46.  
  47.   friend string& operator+(string& x, string& y);
  48.  
  49.   void error(char *p) { cerr << p << "\n"; exit(1); }
  50.  
  51. };
  52.  
  53.