Please help me with this C++ assignment! RIGHTMOST CHAR CHALLENGE DESCRIPTION: Y
ID: 3834385 • Letter: P
Question
Please help me with this C++ assignment!
RIGHTMOST CHAR
CHALLENGE DESCRIPTION:
You are given a string 'S' and a character 't'. Print out the position of the rightmost occurrence of 't' (case matters) in 'S' or -1 if there is none. The position to be printed out is zero based.
INPUT SAMPLE:
The first argument will be a path to a filename (e.g. the program was executed with >>> ./a.out input.txt <<<<< ), containing a string and a character, comma delimited, one per line. Ignore all empty lines in the input file. E.g.
OUTPUT SAMPLE:
Print out the zero based position of the character 't' in string 'S', one per line. Do NOT print out empty lines between your output.
E.g.
Explanation / Answer
#include <iostream>
#include <fstream>
using namespace std;
int getRightIndex(string line, char c)
{
for(int i = line.length() -1; i >= 0; i--)
{
if(line[i] == c)
return i;
}
return -1;
}
int main(int argc, char *argv[])
{
if(argc != 2)
{
cout << "Input file is not specified" << endl;
return 1;
}
ifstream in(argv[1]);
string line;
while(getline(in, line, ','))
{
if(line.empty())
{
continue;
}
string c;
getline(in, c);
int pos = getRightIndex(line, c[0]);
cout << pos<< endl;
}
return 0;
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.