I have a homework that requires me to do operations on a string, I used an iterator in the second function to find the last index of a letter in the string and first index of it to find the distance between them.
here is my code, focus on int  textProcessing(const string &inputString, char letter); function:
#include <iostream>
#include <fstream>
#include <string>
#include<algorithm>
#include <iomanip>
#include <iterator>
using namespace std;
void textProcessing(string &inputString);
int  textProcessing(const string &inputString, char letter);
void textProcessing(string &inputString, char orgChar, char newChar);
int main() {
    ofstream out("text.txt");
    out<<"the earth is a very small stage in a vast cosmic arena";
    out.close();
    unsigned short operation;
    cin >> operation;
    string sentence;
    fstream inputstream;
    inputstream.open("text.txt");
    while (!inputstream.eof()) {
        getline(inputstream, sentence);
        if (sentence.length() > 0) {
            // Your code starts here
            if (operation==0){
                textProcessing(sentence);
            }
            else if(operation==1){
                char rletter;
                cin>>rletter;
                if(isupper(rletter)){
                    cout<<"Invalid";
                }
                else {
                    int ans = textProcessing(sentence, rletter);
                    cout << ans;
                }
            }
            else if(operation==2){
                char orignal;
                char newl;
                cin>>orignal>>newl;
                textProcessing(sentence,orignal,newl);
            }
            else{
                cout<<"Invalid";
            }
            // Your code ends here
        }
    }
    return 0;
}
void textProcessing(string &inputString){
    inputString.erase(remove(inputString.begin(),inputString.end(),'a'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'o'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'u'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'w'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'y'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'i'),inputString.end());
    inputString.erase(remove(inputString.begin(),inputString.end(),'e'),inputString.end());
    cout<<inputString;
};
int  textProcessing(const string &inputString, char letter){
    int count=0;
    auto it=find(inputString.rbegin(),inputString.rend(),letter);
    int last_index =distance(inputString.begin(), (it + 1).base());
    int first=inputString.find(letter);
    int distance=(last_index-first);
    return distance;
};
void textProcessing(string &inputString, char orgChar, char newChar){
    if((isupper(orgChar))/*||(isupper(newChar))*/){
        cout<<"Invalid";
    }
    else {
        for (int i = 0; i <= inputString.length(); i++) {
            if (inputString[i] == orgChar) {
                inputString[i] = newChar;
            }
        }
        cout<<inputString;
    }
}
and here is the error from assignment website:
Your program displayed : student.cpp: In function ‘int textProcessing(const string&, char)’: student.cpp:79:10: error: ‘it’ does not name a type
System Message: ERROR/3 (<string>, line 3)
Unexpected indentation.
auto it=find(inputString.rbegin(),inputString.rend(),letter);
^
System Message: WARNING/2 (<string>, line 5)
Block quote ends without a blank line; unexpected unindent.
student.cpp:80:52: error: ‘it’ was not declared in this scope
int last_index =distance(inputString.begin(), (it + 1).base());
^ 
 
    