Écrire une fonction récursive qui inverse la chaîne d'entrée

J'ai lu le livre de C++ Pour tout le monde et l'un des exercices que dit l'écriture d'une fonction string reverse(string str) où la valeur de retour est l'inverse de str.

Quelqu'un peut-il écrire un peu de code simple et il m'expliquer? J'ai été regarder à cette question depuis hier et ne peut pas le comprendre. Le plus loin que j'ai eu est d'avoir le retour de la fonction de la première lettre de str (encore que je ne sais pas comment c'est arrivé)

C'est ce que je suis (Une heure après l'affichage de cette question):

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 je rentre "Loup", il renvoie Wol. Quelqu'un peut m'aider ici
Si je return word au lieu de return str_copy puis-je obtenir un w
Si je return last_letter puis-je obtenir un l

Vous souhaitez retourner le reste de la chaîne inversée, suivie par la première lettre.
Ce n'cette question ont à faire avec un récursive de la fonction? Et qu'entendez-vous par livre?
L'approche récursive ou itérative:)?
une fonction récursive..."
Ahh! Désolé, je viens de lire la question, ne regarde pas le titre.

OriginalL'auteur Alex | 2011-04-22