Question: Please help me with this entire C++ lab example. I know it looks long but i promise most of it are just explanations. I will

Please help me with this entire C++ lab example. I know it looks long but i promise most of it are just explanations. I will provide the given codes below the pictured instructions. thank you so much

Please help me with this entire C++ lab example. I know it

looks long but i promise most of it are just explanations. I

will provide the given codes below the pictured instructions. thank you so

much // StringDriver.h #ifndef _STRINGDRIVER_H #define _STRINGDRIVER_H #include "String.h" #include "ReverseString.h" #include

"CaseString.h" int main(); void test1(); void test2(); void test3(); void test4(); void

test5(); void test6(); void test7(); void test8(); void test9(); void test10(); void

test11(); void test12(); void test13(); void test14(); void test15(); void test16(); void

test17(); void test18(); void test19(); void test20(); void wait(); #endif ------------------------------------------------------------------------------------------------------------------------- //

StringDriver.cpp #include #include #include #include "StringDriver.h" using namespace std; ofstream csis; int

main() { csis.open("csis.txt"); test1(); test2(); test3(); test4(); test5(); test6(); test7(); test8(); test9();

// StringDriver.h

#ifndef _STRINGDRIVER_H

#define _STRINGDRIVER_H

#include "String.h"

#include "ReverseString.h"

#include "CaseString.h"

int main();

void test1();

void test2();

void test3();

void test4();

void test5();

void test6();

void test7();

void test8();

void test9();

void test10();

void test11();

void test12();

void test13();

void test14();

void test15();

void test16();

void test17();

void test18();

void test19();

void test20();

void wait();

#endif

-------------------------------------------------------------------------------------------------------------------------

// StringDriver.cpp

#include

#include

#include

#include "StringDriver.h"

using namespace std;

ofstream csis;

int main() {

csis.open("csis.txt");

test1();

test2();

test3();

test4();

test5();

test6();

test7();

test8();

test9();

test10();

test11();

test12();

test13();

test14();

test15();

test16();

test17();

test18();

test19();

test20();

csis.close();

}

void test1() {

cout

csis

String s1;

s1.print();

wait();

}

void test2() {

cout

csis

String s2("ABC");

s2.print();

wait();

}

void test3() {

cout

csis

String s3('Z');

s3.print();

wait();

}

void test4() {

cout

csis

String s4(10);

s4.print();

wait();

}

void test5() {

cout

csis

String s5("Purple Rain");

s5.print();

String t5(s5);

t5.print();

wait();

}

void test6() {

cout

csis

String s6('*', 10);

s6.print();

wait();

}

void test7() {

cout

csis

String s7("Sally Ride"), t7, u7;

t7 = u7 = s7;

s7.print();

t7.print();

u7.print();

wait();

}

void test8() {

cout

csis

String s8("ABC");

s8 = s8;

s8.print();

wait();

}

void test9() {

cout

csis

String s9;

s9 = "ABC";

s9.print();

wait();

}

void test10() {

cout

csis

String s10("DEF");

String t10('H');

String u10("ABC" + s10 + "G" + t10 + 'I');

u10.print();

String v10('X' + u10);

v10.print();

wait();

}

void test11() {

cout

csis

String s11('A');

String t11("BC");

s11 += s11 += t11 += 'D';

s11.print();

t11.print();

wait();

}

void test12() {

cout

csis

String s12("Unary +");

String t12(+s12);

s12.print();

t12.print();

s12 = +s12;

s12.print();

wait();

}

void test13() {

cout

csis

String s13("ABC"), t13("ABCD");

s13.print();

t13.print();

cout

cout

cout

cout

cout

cout " t13 ? "True" : "False")

cout = " = t13 ? "True" : "False")

csis

csis

csis

csis

csis

csis " t13 ? "True" : "False")

csis = " = t13 ? "True" : "False")

wait();

}

void test14() {

cout

csis

String s14("C++ is fun.");

for (int i = -1; i

char& ch = s14[i];

if (ch != '\0')

++ch;

}

s14.print();

wait();

}

void test15() {

cout

csis

String s15("ABCDE");

for(int i = 0; i

++(*(s15+i));

for (int j = 0; j

cout

csis

}

cout

csis

wait();

}

void test16() {

cout

csis

String s16("ABC");

String t16(++s16);

s16.print();

t16.print();

String u16("ABC");

String v16(u16++);

u16.print();

v16.print();

String w16("ABC");

String x16(--w16);

w16.print();

x16.print();

String y16("ABC");

String z16(y16--);

y16.print();

z16.print();

wait();

}

void test17() {

cout

csis

String s17("All You Need Is Love"), t17;

t17 = s17.substr(4, 8);

s17.print();

t17.print();

wait();

}

void test18() {

cout

csis

String s18("Red-");

String t18("Green-");

String u18("Blue");

cout

csis

cout

csis

wait();

}

void test19() {

cout

csis

ReverseString s19("Computer");

ReverseString t19;

t19 = ~s19;

s19.print();

t19.print();

ReverseString u19(~~s19);

u19.print();

wait();

}

void test20() {

cout

csis

CaseString s20("BaLLooN");

CaseString t20;

t20 = s20;

s20.print();

t20.print();

CaseString u20(s20);

u20.print();

wait();

}

void wait() {

char buf;

cout

csis

cin.get(buf);

}

e inheritance Lab (String Class) One of the most popular classes to define in C++ is the one that emulate string literal in C. The reason is that a string is not a built-in type in C used all the time. Thus, to perform the various manipulations o must call upon functions in the library string.h that perform copy, duplicate, compare, etc. In Ctt, this need is obviated by tsuch as function and operator overloading. In order to represent the state of a object, you will use two data members in and yet it is rations such as use of the length, length, of the string as an int a pointer, buf, to the string literal of type char* A pointer to a character (char*) is used instead of a fixed-length character array so that memory can be allocated at run-time (via the operator new) and, therefore, have no restrictions placed upon the length of the string (too big or too small). The length field is not strictly mandatory since it can always be obtained from the string pointer via the strlen () idea to have it to avoid repeated calls to strlen ( ) . function. However, its probably a good Overloaded Constructor Functions The creation of each String instance involves allocation of space on the heap, copying the string literal, and setting the length data member accordingly Because there are many different ways in which a String object can be initialized, the constructor functions for the String class must be overloaded to accommodate all of the various situations. First, if a String object is created with no explicit initialization, then the default constructor (the one that can be called with no actual arguments) will be called. t makes sense that we should have the invoking instance point to an empty string literal whose length is zero. String)7 Focus on Object-Oriented Programming with C++ Page 446

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!