Question
The task for this assignment (in C++) is: Read in a list of words (whitespace-separated std::string values) from std::cin (until EOF or an error) and
The task for this assignment (in C++) is:
Read in a list of words (whitespace-separated std::string values) from std::cin (until EOF or an error) and put each word in a (single!) std::vector. Use the std::find() algorithm to find the iterator, pos1, of the first instance of the word "begin". Use the std::find() algorithm to find the iterator, pos2, of the last instance of the word "end".
Output all of the words in the words between pos1 and pos2 using std::copy. (*pos1, i.e., the word "begin", must not be output.) Each word output must be followed by a space character.
Tips Reading in whitespace-separated words is easy: by default C++ will skip over whitespace when using operator >>.
This means cin >> str; where str is a std::string variable, will read in whitespace-separated words. :-)
After calling std::find() the first time, check if pos1 != v.end() and if it is not, then ++pos1. This will move pos1 to one position after the "begin" position, or, do nothing if "begin" was not found!
std::copy's third argument can be ostream_iterator(cout, " ").
SAMPLE INPUT
$ cat a2-input1.dat bad output1 begin a quick brown fox jumped end bad output2 $ cat a2-input2.dat bad output1 begin a quick brown fox jumped okay output2 $ cat a2-input3.dat bad output1 a quick brown fox jumped end bad output2
SAMPLE OUTPUT
$ ./a.out
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