(8) Implement the ReplaceExclamation() function. ReplaceExclamation() has a string parameter and updates the string by replacing each T character in the string with a character. ReplaceExclamation() DOES NOT output the string. Call ReplaceExclamation() in the ExecuteMenu() function, and then output the edited string. Ex. Edited text: We'll continue our quest in space. There will be more shuttle flights and more shuttle crews and, yes, more volunteers, more civilians, more teachers in space. Nothing ends here; our hopes and our journeys continue.

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter5: Repetition Statements
Section5.5: A Closer Look: Loop Programming Techniques
Problem 12E: (Program) Write a program that tests the effectiveness of the rand() library function. Start by...
icon
Related questions
Question
100%

C++ Need help with part 8

This is what i have so far

#include <iostream>
#include <string>

using namespace std;

int GetNumOfNonWSCharacters(const string text);
int GetNumOfWords(const string text);
int FindText(string text, string sample_text);
string ReplaceExclamation(string text);
string ShortenSpace(string text);

char PrintMenu(string sample_text){
char option;
cout << "\nMENU"<<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;
cout<<endl;
cout << "Choose an option:"<<endl;
cin >> option;

if(option == 'c'){
int nonWSCharacters = GetNumOfNonWSCharacters(sample_text);
cout << "Number of non-whitespace characters: "<<nonWSCharacters<<endl;
}else if(option == 'w'){
int numOfWords = GetNumOfWords(sample_text);
cout << "Number of words: "<<numOfWords<<endl;
}else if(option == 'f'){
cout<<"Enter a word or phrase to be found:"<<endl;
string phrase;
cin.ignore();
getline(cin, phrase, '\n');
int instances = FindText(phrase,sample_text);
cout << "\""<< phrase << "\" instances: "<<instances<<endl;
}else if(option == 'r'){
string edited_text = ReplaceExclamation(sample_text);
cout << "Edited text: "<<edited_text<<endl;
}else if(option == 's'){
string edited_text = ShortenSpace(sample_text);
cout << "Edited text: "<<edited_text;
}

return option;

}

int GetNumOfNonWSCharacters(const string text){
int len = text.length(), nonWSCharacters = 0;
for(int i = 0; i < len; i++){
if(text[i] != ' ' && text[i] != '\n' && text[i] != '\t')
nonWSCharacters++;
}
return nonWSCharacters;
}

int GetNumOfWords(const string text){
int len = text.length(), numOfWords = 0;
for(int i = 0; i < len; i++){
if(text[i] == ' ' || text[i] == '\n' || text[i] == '\t'){
numOfWords++;
++i;
while(i < len && (text[i] == ' ' || text[i] == '\n' || text[i] == '\t'))
++i;
--i;

}
}
if(text[len-1] != ' ' || text[len-1] != '\n' || text[len-1] != '\t')
numOfWords++;

return numOfWords;
}

int FindText(string text, string sample_text){
int sample_length = sample_text.length();
int text_length = text.length();
int instances = 0;
for(int i=0;i<=sample_length-text_length; i++){
int j = 0;
for(; j<text_length; j++){
if(text[j]!=sample_text[i+j])
break;
}
if(j==text_length){
instances++;

}
}
return instances;

}

string ReplaceExclamation(string sample_text){
int len = sample_text.length();
int i = 0;
string edited_text = "";
while(i < len)
{
if(sample_text[i] == '!'){
edited_text += '.';
}else{
edited_text += sample_text[i];
}
i++;
}
return edited_text;

} string ShortenSpace(string sample_text){
int len = sample_text.length();
int i = 0;
string edited_text = "";
while(i < len-1)
{
if(sample_text[i] == ' ' && sample_text[i+1] == ' ')
{
i++;
continue;
}else{
edited_text += sample_text[i];
}
i++;

}
if(sample_text[len-1] != ' '){
edited_text += sample_text[len-1];
}
return edited_text;
}


int main(){
string sample_text;
cout << "Enter a sample text:"<<endl;
getline(cin, sample_text);

cout<<endl;
cout << "You entered: ";
cout<<sample_text<<endl;

while(true){
char option = PrintMenu(sample_text);
if(option=='q')
break;
}
return 0;

}

(8) Implement the ReplaceExclamation() function. ReplaceExclamation() has a string parameter and updates the string by replacing each T
character in the string with a character. ReplaceExclamation() DOES NOT output the string. Call ReplaceExclamation() in the
ExecuteMenu() function, and then output the edited string.
Ex.
Edited text: We'll continue our quest in space.
There will be more shuttle flights and more
shuttle crews and,
yes,
more volunteers, more civilians,
more teachers in space.
Nothing ends
here;
our hopes and our journeys continue.
(9) Implement the ShortenSpace() function. ShortenSpace() has a string parameter and updates the string by replacing all sequences of 2
or more spaces with a single space. ShortenSpace() DOES NOT output the string. Call ShortenSpace() in the ExecuteMenu() function, and
then output the edited string.
Ex:
Edited text: We'll continue our quest in space. There will be more shuttle flights and more
shuttle crews and, yes, more volunteers, more civilians, more teachers in space. Nothing ends
here; our hopes and our journeys continue!
Transcribed Image Text:(8) Implement the ReplaceExclamation() function. ReplaceExclamation() has a string parameter and updates the string by replacing each T character in the string with a character. ReplaceExclamation() DOES NOT output the string. Call ReplaceExclamation() in the ExecuteMenu() function, and then output the edited string. Ex. Edited text: We'll continue our quest in space. There will be more shuttle flights and more shuttle crews and, yes, more volunteers, more civilians, more teachers in space. Nothing ends here; our hopes and our journeys continue. (9) Implement the ShortenSpace() function. ShortenSpace() has a string parameter and updates the string by replacing all sequences of 2 or more spaces with a single space. ShortenSpace() DOES NOT output the string. Call ShortenSpace() in the ExecuteMenu() function, and then output the edited string. Ex: Edited text: We'll continue our quest in space. There will be more shuttle flights and more shuttle crews and, yes, more volunteers, more civilians, more teachers in space. Nothing ends here; our hopes and our journeys continue!
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Header Files
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr