userInputText) << endl;
break;

case ‘r’:
cout << “”Edited text: “” << ReplaceExclamation(userInputText) << endl;
break;

case ‘s’:
cout << “”Edited text: “” << ShortenSpace(userInputText) << endl;
break;

case ‘q’:
return choice;
}
}
}

int main() {
char choice;
string userInputText;
cout << “”Enter a sample text:””<<>
getline(cin

#include

int GetNumOfNonWSCharacters(const string userInput) {
int j = 0;
for (unsigned int i = 0; i < userInput.size(); i++) {
if (userInput.at(i) != ‘ ‘ ) {
j++;
}
} return j;
}

int GetNumOfWords(const string userInput) {
int j = 1;
for (unsigned int i = 0; i < userInput.size(); i++) {
if (userInput.at(i) == ‘ ‘ && userInput.at(i + 1) != ‘ ‘) {
j++;
}
} return j;
}

int FindText(string word2Find,const string userInput) {
int instances = 0;
unsigned int letterCounter = 0;
for ( unsigned int i = 0; i < userInput.size(); i++) {
if (userInput.at(i) == word2Find.at(letterCounter)) {
letterCounter++;
if (letterCounter == word2Find.size()) {
letterCounter = 0;
instances++;
}
} else if (userInput.at(i) != word2Find.at(letterCounter)) {
letterCounter = 0;
}
} return instances;
}

string ReplaceExclamation(string& userInput) {
for (unsigned int i = 0; i < userInput.size(); i++) {
if (userInput.at(i) == ‘!’ ) {
userInput.at(i) = ‘.’;
}
}
return userInput;
}

string ShortenSpace(string& userInput) {
string ss;
for (unsigned int i = 0; i < userInput.size(); i++) {
if (i == userInput.length()-1) {
ss += userInput.at(i);
break;
}
if (userInput.at(i) == ‘ ‘ && userInput.at(i + 1) == ‘ ‘ ) {
continue;
} else {
ss += userInput.at(i);
}
} userInput = ss;
return userInput;
}

char PrintMenu(string userInputText) {
char choice;
string findWord;
while (true) {
cout << endl;
cout << “MENU” << endl;
cout << “c – Number of non-whitespace characters” << endl;
cout << “w – Number of words” << endl;
cout << “f – Find text” << endl;
cout << “r – Replace all !’s” << endl;
cout << “s – Shorten spaces” << endl;
cout << “q – Quit” << endl << endl;

cout << “Choose an option:”<<>
cin >> choice;

switch (choice) {

case ‘c’:
cout << “Number of non-whitespace characters: ” << GetNumOfNonWSCharacters(userInputText) << endl;
break;

case ‘w’:
cout << “Number of words: ” << GetNumOfWords(userInputText) << endl;
break;

case ‘f’:
cin.ignore();
cout << “Enter a word or phrase to be found:”<<>
getline(cin, findWord);
cout << “”” << findWord << “””” “” << “”instances: “” << FindText(findWord