Answered step by step
Verified Expert Solution
Question
1 Approved Answer
write C++ code to test mystring Class #include #include myString.h //-------------------------------------------------------------------- // // Function prototype void copyTester(myString copymyString); // copymyString is passed by value void
write C++ code to test mystring Class
#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 " << (alpha epsilon) << endl; cout << " epsilon alpha " << (epsilon alpha) << endl; cout << " alpha alpha " << (alpha alpha) << endl; cout << " alp alpha " << (alp alpha) << endl; cout << " alpha alp " << (alpha alp) << endl; cout << " a alpha " << (a alpha) << endl; cout << " alpha a " << (alphaa) << endl; cout << " empty alpha " << (empty alpha) << endl; cout << " alpha empty " << (alpha empty) << endl; cout << " empty empty " << (empty empty) << 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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started