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

Write a recursive function in C++ that takes as an input parameter a string and

ID: 3884106 • Letter: W

Question

Write a recursive function in C++ that takes as an input parameter a string and returns the reverse of that string. (you will need other input parameters) So, for instance, if the input string was “amri”, the function should return “Irma”. As with all the functions you write, make sure you have a function declaration above the main function, make sure you comment the function (including, given a particular input, the expected output), and make sure you call the function with 3 different test cases from your main.

Explanation / Answer

C++ program to reverse a string using recursion (with explanation):

#include <iostream>
using namespace std;

void reverse(const string& a);

int main()
{
    string str;
    cout << " Please enter a string " << endl;
    getline(cin, str);
    reverse(str);
    return 0;   
}

void reverse(const string& str)
{
    size_t numOfChars = str.size();

    if(numOfChars == 1)
       cout << str << endl;
    else
    {
       cout << str[numOfChars - 1];
       reverse(str.substr(0, numOfChars - 1));
    }
}

OUTPUT

Please enter a string                                                          

amri                                                                            

irma                                                                                                 

...Program finished with exit code 0                                            

Press ENTER to exit console.  

PROGRAM EXPLANATION-

In this program, the user is asked to enter a string which is stored in the string object str.

Then, the reverse() function is called which is a recursive function. In the first function call, reverse() prints the last character of the string (numOfChars - 1), -1 because array starts with 0.

Then, substr() gives the string upto the 2nd last character, which is passed again to the reverse() function.

In the next reverse() call, the 2nd last character is printed because the string contains one less character from the last. After this, one character from the last is cut-off from the string again and passed to the reverse() function.

This goes until the length of the string equals 1, when the final character (or the first character) is printed and the loop ends.

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