#include #include #include "bstring.h" using namespace std; /* char* str; // pointer to dynamically allocated string // stored as a char array int size; // tracking variable, size of string // allocated space will always be size + 1 */ bool operator< (const BString& b1, const BString& b2) { } bool operator> (const BString& b1, const BString& b2) { } bool operator<= (const BString& b1, const BString& b2) { } bool operator>= (const BString& b1, const BString& b2) { } bool operator== (const BString& b1, const BString& b2) { } bool operator!= (const BString& b1, const BString& b2) { } BString operator+(const BString& b1, const BString& b2) { } ostream& operator<< (ostream& os, const BString& bs) // print the string stored in bs { os << bs.str; return os; } istream& operator>> (istream& is, BString& bs) { } BString::BString() // build an empty string { size = 0; str = new char[size+1]; str[0] = '\0'; } BString::BString(const char* s) { size = strlen(s); str = new char[size+1]; strcpy(str, s); } // create string from a c-string BString::~BString() { delete [] str; } BString::BString(const BString& bs) { size = bs.size; str = new char[size+1]; strcpy(str, bs.str); } BString& BString::operator=(const BString& bs) { if (this != &bs) { if (str != 0) delete [] str; // clean up previous stuff size = bs.size; str = new char[size+1]; strcpy(str, bs.str); } return *this; } BString& BString::operator+= (const BString& bs) { } int BString::Size() const { } BString BString::Substring(int start, int length) const { } void BString::Resize(int newsize) { }