9. You are given a file consisting of students’ names in the following form: lastName, firstName middleName. (Note that a student may not have a middle name.) Write a program that converts each name to the following form: firstName middleName lastName. Your program must read each student’s entire name in a variable and must consist of a function that takes as input a string, consists of a student’s name, and returns the string consisting of the altered name. Use the string function find to find the index of ,; the function length to find the length of the string; and the function substr to extract the firstName, middleName, and lastName.

Respuesta :

Answer:

#include<iostream>

#include<fstream>

#include<string>

using namespace std;

int main ()

{

string firstName, middleName, lastName;

string line;

ifstream infile;

ofstream outfile;

infile.open ("Ch8_Ex9Data.txt");

outfile.open ("Ch8_Ex9Dataout.txt");

while (getline(infile, line))

{

int comma = line.find (',');

int length = line.length ();

lastName = line.substr (0, comma);

int space_after_firstName = line.find (' ', comma + 2);

if (space_after_firstName != -1)

{

firstName = line.substr (comma+2, space_after_firstName - comma -2);

middleName = line.substr(space_after_firstName + 1, length);

outfile << firstName << " " << middleName << " ";

cout << firstName << " " << middleName << " ";

}

else

{

firstName = line.substr (comma+2, length);

outfile << firstName << " ";

cout << firstName << " ";

}

outfile << lastName << endl;

cout << lastName << endl;

}

system("pause");

return 0;

}

Explanation:

The program makes use of students’ names in the following form: lastName, firstName middleName as its input parameters.

The program converts each name to the following form: firstName middleName lastName. It also read each student’s entire name in a variable and consist of a function that takes as input a string, consists of a student’s name, and returns the string consisting of the altered name.