Question: here we have mystring.h and a test.cpp file to test the file mystring.cpp. so write program for mystring.cpp by using data members private // Data

here we have mystring.h and a test.cpp file to test the file mystring.cpp. so write program for mystring.cpp by using data members 

private // Data members

int myStringSize;

char *Arr;

______________________________________________________

don't use

 #include 
 private: string mystr; int SIZE;

_______________________________________________________________________________

Mystring.h

#ifndef myString_H

#define myString_H

#define _CRT_SECURE_NO_WARNINGS

#include

#include

//#include

using namespace std;

class myString

{

private:

//string mystr;

//int SIZE;

int myStringSize;

char *Arr;

friend istream & operator >> (istream& input, myString& inputmyString); //can access private data members

friend ostream & operator << (ostream& output, const myString& outputmyString); //friend only in h file

//purpose is to outputstring

public:

myString(const char *charString = "");

char operator [] (int n) const; // will take int locations and return a char from srting

//links to pointer

void operator = (const myString &other); //assignment operator

myString(const myString &other); //copy const - only has one arg. and is passed by ref.

~myString();

void showStructure() const; //print strin

int getLength() const; //returns lenght

bool operator<(const myString& other) const;

bool operator>(const myString& other) const;

bool operator==(const myString& other) const;

myString toUpper(); //convert a -> A

myString toLower(); //conver A->a

void clear();

myString toLower();

};

#endif

test,cpp

#include  #include "myString.h" // Function prototype void copyTester(myString copymyString); // copymyString is passed by value void print_help(); //-------------------------------------------------------------------- int main() { myString a("a"), // Predefined test myString objects alp("alp"), alpha("alpha"), epsilon("epsilon"), empty, assignmyString, // Destination for assignment inputmyString; // Input myString object int n; // Input subscript char ch, // Character specified by subscript selection; // Input test selection // Get user test selection. print_help(); // Execute the selected test. cin >> selection; cout << endl; switch (selection) { case '1': // Test 1 : Tests the constructors. cout << "Structure of various myString objects: " << endl; cout << "myString object: alpha" << endl; alpha.showStructure(); cout << "myString object: epsilon" << endl; epsilon.showStructure(); cout << "myString object: a" << endl; a.showStructure(); cout << "empty myString object" << endl; empty.showStructure(); break; case '2': // Test 2 : Tests the length operation. cout << "Lengths of various myString object:" << endl; cout << " alpha : " << alpha.getLength() << endl; cout << " epsilon : " << epsilon.getLength() << endl; cout << " a : " << a.getLength() << endl; cout << " empty : " << empty.getLength() << endl; break; case '3': // Test 3 : Tests the subscript operation. cout << "Enter a subscript : "; cin >> n; ch = alpha[n]; cout << " alpha[" << n << "] : "; if (ch == '\0') cout << "\\0" << endl; else cout << ch << endl; break; case '4': // Test 4 : Tests the assignment and clear operations. cout << "Assignments:" << endl; cout << "assignmyString = alpha" << endl; assignmyString = alpha; assignmyString.showStructure(); cout << "assignmyString = a" << endl; assignmyString = a; assignmyString.showStructure(); cout << "assignmyString = empty" << endl; assignmyString = empty; assignmyString.showStructure(); cout << "assignmyString = epsilon" << endl; assignmyString = epsilon; assignmyString.showStructure(); cout << "assignmyString = assignmyString" << endl; assignmyString = assignmyString; assignmyString.showStructure(); cout << "assignmyString = alpha" << endl; assignmyString = alpha; assignmyString.showStructure(); cout << "Clear assignmyString" << endl; assignmyString.clear(); assignmyString.showStructure(); cout << "Confirm that alpha has not been cleared" << endl; alpha.showStructure(); break; case '5': // Test 5 : Tests the copy constructor and operator= operations. cout << "Calls by value:" << endl; cout << "alpha before call" << endl; alpha.showStructure(); copyTester(alpha); cout << "alpha after call" << endl; alpha.showStructure(); cout << "a before call" << endl; a.showStructure(); a = epsilon; cout << "a after call" << endl; a.showStructure(); cout << "epsilon after call" << endl; epsilon.showStructure(); break; case '6': // Test 6 : Tests toUpper and toLower cout << "Testing toUpper and toLower." << "Enter a mixed case string: " << endl; cin >> inputmyString; cout << "Input string:" << endl; inputmyString.showStructure(); cout << "Upper case copy: " << endl; inputmyString.toUpper().showStructure(); cout << "Lower case copy: " << endl; inputmyString.toLower().showStructure(); break; case '7': // Test 7 : Tests the relational operations. cout << " left right < == > " << endl; cout << "--------------------------------" << endl; cout << " alpha epsilon " << (alphaepsilon) << endl; cout << " epsilon alpha " << (epsilonalpha) << endl; cout << " alpha alpha " << (alphaalpha) << endl; cout << " alp alpha " << (alpalpha) << endl; cout << " alpha alp " << (alphaalp) << endl; cout << " a alpha " << (aalpha) << endl; cout << " alpha a " << (alphaa) << endl; cout << " empty alpha " << (emptyalpha) << endl; cout << " alpha empty " << (alphaempty) << endl; cout << " empty empty " << (emptyempty) << endl; break; default: cout << "'" << selection << "' specifies an inactive or invalid test" << endl; } return 0; } //-------------------------------------------------------------------- void copyTester(myString copymyString) // Dummy routine that is passed a myString object using call by value. Outputs // copymyString and clears it. { cout << "Copy of myString object" << endl; copymyString.showStructure(); cout << "Clear copy" << endl; copymyString.clear(); copymyString.showStructure(); } //-------------------------------------------------------------------- void print_help() { cout << endl << "Tests:" << endl; cout << " 1 Tests the constructors" << endl; cout << " 2 Tests the length operation" << endl; cout << " 3 Tests the subscript operation" << endl; cout << " 4 Tests the assignment and clear operations" << endl; cout << " 5 Tests the copy constructor and operator= operations" << endl; cout << " 6 Tests the toUpper and toLower operations " << endl; cout << " 7 Tests the relational operations " << endl; cout << "Select the test to run : "<                                            

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!