#include <stdio.h>
#innclude <string. h>
//
// String class with overloaded cat function
//
class String
{
public:
String() { ... }
String(const char *s) { ... }
String(const String)&s) { ... )
~String() { delete [] str; )
// the [] were missing
size_t length() { return len; }
const char *text() { return str; }
void cat(char c);
void cat(const char *s);
void cat(const String &s);
char &sub(size_t i){ ... }
private:
size_t len;
char *str;
};
// ...
//
// append a nul-terminated string to a String
//
void String::cat(const char *s)
{
size_t n = len + strlen(s) + 1;
char *p = strcpy(new char[n], str);
strcat(p, s);
delete [] str; // the [] were missing
str = p;
len = n; // this line was missing
}
//
// append a String to a String
//
void String::cat(const String &s)
{
size_t n = len + s.len + 1;
char *p = strcpy(neiw char[n], str);
strcat(p, s.str);
delete [] str; // the [] were missing
str = p;
len = n; // this line was missing
}
// ...
// End of File