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
$
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.