Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

A file, called data, contains some unknown number of lines. Read them all in, an

ID: 3732525 • Letter: A

Question

A file, called data, contains some unknown number of lines. Read them all in, and output them as in the example below, with the first two characters of each word capitalized if they are alphabetic characters.

Implement and use a function called process that takes one argument, a string. This function should not print anything out, but return a string which is the processed string. Call this function from the main body to produce the output below Make sure to write comments as such:

To describe the program

To describe the function

To describe any particularly complicated logic or loops

See an example compilation and execution on the next page with input in bold.

[williams@bobby 10]$ ls a10.cpp data

[williams@bobby 10]$ cat data

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Nulla id risus nibh.

Sed fermentum ante ac lectus luctus molestie.

Proin vitae ligula finibus, tempor ipsum sed, bibendum nisl.

Vestibulum risus urna, dapibus eu auctor sed, egestas in est.

Donec elementum arcu leo, at dignissim sapien auctor ut.

Suspendisse potenti.

a b c 1 2 3

aa bb cc 11 22 33

aaa bbb ccc 111 222 333

a1b b2c c2d

[williams@bobby 10]$ g++ -Wall -Werror -Wpedantic -Wextra -std=c++11 a10.cpp

[williams@bobby 10]$ ./a.out

Processed string: LOrem IPsum DOlor SIt AMet, COnsectetur ADipiscing ELit.

Original string: Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Processed string: NUlla ID RIsus NIbh.

Original string: Nulla id risus nibh.

Processed string: SEd FErmentum ANte AC LEctus LUctus MOlestie.

Original string: Sed fermentum ante ac lectus luctus molestie.

Processed string: PRoin VItae LIgula FInibus, TEmpor IPsum SEd, BIbendum NIsl.

Original string: Proin vitae ligula finibus, tempor ipsum sed, bibendum nisl.

Processed string: VEstibulum RIsus URna, DApibus EU AUctor SEd, EGestas IN ESt.

Original string: Vestibulum risus urna, dapibus eu auctor sed, egestas in est.

Processed string: DOnec ELementum ARcu LEo, AT DIgnissim SApien AUctor UT.

Original string: Donec elementum arcu leo, at dignissim sapien auctor ut.

Processed string: SUspendisse POtenti.

Original string: Suspendisse potenti.

Processed string: A B C 1 2 3

Original string: a b c 1 2 3

Processed string: AA BB CC 11 22 33

Original string: aa bb cc 11 22 33

Processed string: AAa BBb CCc 111 222 333

Original string: aaa bbb ccc 111 222 333

Processed string: A1b B2c C2d

Original string: a1b b2c c2d

[williams@bobby 10]$

Explanation / Answer

Hello There,

PFB code for requested functionality along with the output of test run.

a10.cpp

--------------------------------

#include <iostream>

#include <iomanip>

#include <fstream>

#include <stdlib.h>

#include <sstream>

#include <cctype>

using namespace std;

string process(string str);

int main() {

ifstream inFile;

  

inFile.open("data");

if (!inFile) {

cout << "Unable to open file";

exit(1); // terminate with error

}

string original, processed;

while (getline(inFile, original)) { // reading from a file

istringstream iss(original);

processed = "";

do{

string subs;

iss >> subs;

processed.append(process(subs));

processed.append(" ");

} while (iss);

cout << "Processed string: " << processed << endl;

cout << "Original string: " << original << endl;

}

inFile.close();

return 0;

}

// method to capitalize first two characters of an input string

string process(string str){

for(int i=0; i<2 && i < str.length(); i++){

if((str[i] >= 'a' && str[i] <= 'z')||(str[i] >= 'A' && str[i] <= 'Z')){

str[i] = toupper(str[i]);

}

}

return str;

}

-----------------------------------------------

Test Run:

----------------------------------------------

$ cat data
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla id risus nibh.
Sed fermentum ante ac lectus luctus molestie.
Proin vitae ligula finibus, tempor ipsum sed, bibendum nisl.
Vestibulum risus urna, dapibus eu auctor sed, egestas in est.
Donec elementum arcu leo, at dignissim sapien auctor ut.
Suspendisse potenti.
a b c 1 2 3
aa bb cc 11 22 33
aaa bbb ccc 111 222 333
a1b b2c c2d
$ g++ a10.cpp
$ ./a.out
Processed string: LOrem IPsum DOlor SIt AMet, COnsectetur ADipiscing ELit.  
Original string: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Processed string: NUlla ID RIsus NIbh.  
Original string: Nulla id risus nibh.
Processed string: SEd FErmentum ANte AC LEctus LUctus MOlestie.  
Original string: Sed fermentum ante ac lectus luctus molestie.
Processed string: PRoin VItae LIgula FInibus, TEmpor IPsum SEd, BIbendum NIsl.  
Original string: Proin vitae ligula finibus, tempor ipsum sed, bibendum nisl.
Processed string: VEstibulum RIsus URna, DApibus EU AUctor SEd, EGestas IN ESt.  
Original string: Vestibulum risus urna, dapibus eu auctor sed, egestas in est.
Processed string: DOnec ELementum ARcu LEo, AT DIgnissim SApien AUctor UT.  
Original string: Donec elementum arcu leo, at dignissim sapien auctor ut.
Processed string: SUspendisse POtenti.  
Original string: Suspendisse potenti.
Processed string: A B C 1 2 3  
Original string: a b c 1 2 3
Processed string: AA BB CC 11 22 33  
Original string: aa bb cc 11 22 33
Processed string: AAa BBb CCc 111 222 333  
Original string: aaa bbb ccc 111 222 333
Processed string: A1b B2c C2d  
Original string: a1b b2c c2d
$

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote