Программа на C ++ для изменения предложения с помощью рекурсии

Эта программа берет предложение от пользователя и меняет его, используя рекурсию. Эта программа не использует строку, чтобы перевернуть предложение или сохранить предложение.

Чтобы понять этот пример, вы должны знать следующие темы программирования на C ++:

  • Функции C ++
  • Типы пользовательских функций в C ++
  • Рекурсия C ++
  • C ++ if, if… else и Nested if… else

Пример: переверните предложение с помощью рекурсии.

 #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)); ) ) 

Вывод

 Введите предложение: margorp emosewa awesome program 

В этой программе пользователя просят ввести строку, которая хранится в строковом объекте str.

Затем reverse()вызывается функция, которая является рекурсивной функцией.

Внутри этой функции мы сохраняем размер входной строки в переменной numOfChars.

При первом вызове функции reverse()выводит последний символ строки с кодом:

 cout << str(numOfChars - 1);

Помните, что строки на самом деле представляют собой массивы символов , поэтому каждый отдельный символ строки может быть представлен как индекс массива строк str ().

В следующей строке вызывается рекурсивная функция:

 reverse(str.substr(0, numOfChars - 1));

Здесь substr()выдает строку до 2-го последнего символа, который снова передается reverse()функции.

При следующем reverse()вызове печатается второй последний символ, потому что строка содержит на один символ меньше последнего. После этого один из последних символов снова вырезается из строки и передается в reverse()функцию.

Это продолжается до тех пор, пока длина строки не станет равной 1, когда будет напечатан последний символ (или первый символ) и цикл завершится.

Интересные статьи...