Purpose: Data Hiding, Constructors, Destructors, Friends

Points: 25

Instructor: Dana Steil

Turn In: All Files in Easel

Files: String.h, String.cpp, StringIterator.h, StringIterator.cpp, Test.cpp

 

String Assignment

 

Part 1.a

Fix all mistakes from strings part 2.

 

Part 1.b

Modify your String class from assignment 4 to make StringIterator a friend.

 

 

Part 2 Create a class named StringIterator with the following:

 

Variables:

int index; // The current index in focus for a given String

const String& string; //A reference to the string to iterate

Or or

const String* pString; //A pointer to the string to iterate

 

Functions:

StringIterator(const String& stringToIterate); //Make the index = 0

//Maintain a reference or pointer the stringToIterate

char currentCharacter(); //return \0 if there is not a current character

bool atWhiteSpace(); //return true if the current character is white space ( ,\n,\r,\f,\v,\t)

//the function that does this is isspace(char c) in the cctype library

char nextCharacter(); //return \0 if there is not a next character

char previousCharacter(); //return \0 if there is not a previous character

bool moveForward(int CharactersToMove = 1); //return false if it can not make the move

bool movePrevious(int CharactersToMove = 1); //return false if it can not make the move

bool moveToNextWord(); // return false if it can not make the move

bool moveToPreviousWord(); // return false if it can not make the move

void moveToFront();

void moveToEnd();

String currentWord(); //return a new String containing the word the Iterator currently resides in

//if it is currently on white space just use the one white space character

 

 

Later we will take care of a referenced String dieing without the Iterator knowing about it.