Escriba una función recursiva que invierta la cadena de entrada

He estado leyendo el libro C ++ para todos y uno de los ejercicios decía escribir una funciónstring reverse(string str) donde el valor de retorno es el reverso destr.

¿Alguien puede escribir algún código básico y explicármelo? He estado mirando esta pregunta desde ayer y no puedo resolverlo. Lo más lejos que he llegado es que la función devuelva la primera letra destr (Que todavía no sé cómo sucedió)

Esto es lo que llegué (una hora después de publicar esta pregunta):

string reverse(string str)
{
    string word = "";

    if (str.length() <= 1)
    {
        return str;
    }
    else
    {
        string str_copy = str;
        int n = str_copy.length() - 1;
        string last_letter = str_copy.substr(n, 1);

        str_copy = str_copy.substr(0, n);
        word += reverse(str_copy);
        return str_copy;
    }
    return word;
}

Si entro en "Wolf", devuelve Wol. Alguien me ayude aquí si yoreturn word en lugar dereturn str_copy entonces obtengo unw Si yoreturn last_letter entonces recibo unl

Respuestas a la pregunta(16)

Su respuesta a la pregunta