Ten program pobiera zdanie od użytkownika i odwraca to zdanie za pomocą rekurencji. Ten program nie używa ciągu znaków do odwrócenia zdania lub jego przechowywania.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w języku C ++:
- Funkcje C ++
 - Typy funkcji zdefiniowanych przez użytkownika w C ++
 - Rekursja w C ++
 - C ++ if, if… else i Nested if… else
 
Przykład: odwróć zdanie za pomocą rekurencji.
 #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)); ) ) 
Wynik
Wpisz zdanie: margorp emosewa awesome program
W tym programie użytkownik jest proszony o wprowadzenie ciągu znaków, który jest przechowywany w obiekcie string str.
Następnie reverse()wywoływana jest funkcja, która jest funkcją rekurencyjną.
Wewnątrz tej funkcji przechowujemy rozmiar ciągu wejściowego w zmiennej numOfChars.
W pierwszym wywołaniu funkcji reverse()wyświetla ostatni znak ciągu z kodem:
 cout << str(numOfChars - 1);
Pamiętaj, że łańcuchy są w rzeczywistości tablicami znaków , więc każdy pojedynczy znak ciągu może być reprezentowany jako indeks tablicy ciągów str ().
W następnym wierszu funkcja rekurencyjna nazywa się:
 reverse(str.substr(0, numOfChars - 1));
Tutaj substr()daje ciąg do drugiego ostatniego znaku, który jest ponownie przekazywany do reverse()funkcji.
W następnym reverse()wywołaniu drukowany jest przedostatni znak, ponieważ ciąg zawiera o jeden znak mniej od ostatniego. Następnie jeden znak od ostatniego jest ponownie odcinany od łańcucha i przekazywany do reverse()funkcji.
Dzieje się tak do momentu, gdy długość łańcucha będzie równa 1, kiedy ostatni znak (lub pierwszy znak) zostanie wydrukowany i pętla się zakończy.








