Este programa toma una oración del usuario y la invierte usando la recursividad. Este programa no usa cadenas para revertir la oración o almacenar la oración.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de C ++:
- Funciones C ++
- Tipos de funciones definidas por el usuario en C ++
- Recurrencia de C ++
- C ++ if, if … else y anidado if … else
Ejemplo: invierte una oración usando la recursividad.
#include using namespace std; // function prototype void reverse(const string& a); int main() ( string str; cout << " Please enter a string " << endl; getline(cin, str); // function call reverse(str); return 0; ) // function definition void reverse(const string& str) ( // store the size of the string size_t numOfChars = str.size(); if(numOfChars == 1) ( cout << str << endl; ) else ( cout << str(numOfChars - 1); // function recursion reverse(str.substr(0, numOfChars - 1)); ) )
Salida
Ingrese una oración: programa impresionante de margorp emosewa
En este programa, se le pide al usuario que ingrese una cadena que se almacena en el objeto de cadena str.
Entonces, reverse()se llama a la función que es una función recursiva.
Dentro de esta función, almacenamos el tamaño de la cadena de entrada en la variable numOfChars.
En la primera llamada a la función, reverse()imprime el último carácter de la cadena con el código:
cout << str(numOfChars - 1);
Recuerde que las cadenas son en realidad matrices de caracteres , por lo que cada carácter individual de una cadena se puede representar como un índice de la matriz de cadenas str ().
En la siguiente línea, se llama a la función recursiva:
reverse(str.substr(0, numOfChars - 1));
Aquí, substr()da la cadena hasta el segundo último carácter, que se pasa nuevamente a la reverse()función.
En la siguiente reverse()llamada, se imprime el segundo último carácter porque la cadena contiene un carácter menos del anterior. Después de esto, un carácter del último se corta nuevamente de la cadena y se pasa a la reverse()función.
Esto va hasta que la longitud de la cadena es igual a 1, cuando se imprime el carácter final (o el primer carácter) y termina el ciclo.








