15.20 Ch 9 Warm up: Parsing strings (C++)
(1) Prompt the user for a string that contains two strings separated by a comma. (1 pt)
Ex:
Enter input string: Jill, Allen
(2) Report an error if the input string does not contain a comma.
Continue to prompt until a valid string is entered. Note: If
the input contains a comma, then assume that the input also
contains two strings. (2 pts)
Ex:
Enter input string: Jill Allen Error: No comma in string. Enter input string: Jill, Allen
(3) Extract the two words from the input string and remove any
spaces. Store the strings in two separate variables and output the
strings. (2 pts)
Ex:
Enter input string: Jill, Allen First word: Jill Second word: Allen
(4) Using a loop, extend the program to handle multiple lines of
input. Continue until the user enters q to quit. (2 pts)
Ex:
Enter input string: Jill, Allen First word: Jill Second word: Allen Enter input string: Golden , Monkey First word: Golden Second word: Monkey Enter input string: Washington,DC First word: Washington Second word: DC Enter input string: q
Program
#include<iostream>
#include<string.h>
#include <sstream>
using namespace std;
int main()
{
string input;
bool quit=false;
while(!quit)
{
bool isComma = false;
do
{
//Prompt the user for a string that contains two strings
separated by a comma.
cout <<"Enter input string: ";
getline (cin, input);
if (input == "q") //If user is
done
{
quit = true;
cout<<"Terminating..."<<endl;
break;
}
else
{
for ( int i = 0; i < input.length(); i++)
{
if (input[i] == ',') //If there is a
comma
isComma = true;
}
//Report an error if the input string does not contain
a comma.
if (!isComma)
{
cout << "Error: No comma in string." <<
endl << endl;
}
}
}while (!isComma); //Continue to prompt until a valid
string is entered.
if(!quit) //If user is not done,
{
string first, second;
istringstream
stream(input);//Extract the two words from the input string and
remove any spaces.
//Store the strings in two separate
variables and output the strings.
getline(stream, first, ',');
stream >> second;
cout << "First word: "
<< first << endl;
cout << "Second word: "
<< second << endl << endl;
}
}//Continue until the user enters q to quit.
return 0;
}
Output
Enter input string: Jim,Allen
First word: Jim
Second word: Allen
Enter input string: Golden Monkey
Error: No comma in string.
Enter input string: Golden,Monkey
First word: Golden
Second word: Monkey
Enter input string: Washington, DC
First word: Washington
Second word: DC
Enter input string: q
Terminating...
Get Answers For Free
Most questions answered within 1 hours.