Вывод строки в инверсном порядке

Рекурсия может использоваться в достаточно неожиданных ситуациях. В примере ниже приведена программа с функцией для вывода в инверсном порядке строки, переданной аргументом этой функции. В функции с помощью рекурсии реализован следующий алгоритм. Если текущий элемент соответствующего символьного массива не является нуль-символом и не совладает с символом i, вызывается функция для обработки следующего символа массива. Если элемент массива является символом i, работа функции заканчивается. Если элемент мас­сива является нуль-символом окончания строки, завершается работа программы с сообщением: I didn't find any 'i'. Таким образом, если строка-аргумент функции содержит хотя бы одну литеру i, строка распечатывается в обратном порядке от этого символа (первого, если их несколько) до начала строки. Если символов i в строке нет, выводится сообщение I didn't find any 'i'.
#include 
using namespace std;
void ShowStr(char *str){
if(*str!='i'&&*str) ShowStr(str+1);
else if(*str=='i') return;
 else {cout << "I didn't find any 'i'!\n";
 exit(0);}
cout <<*str;
}
int main(){
char s[80];
cout << "Enter text here: ";
gets(s);
ShowStr(s);
cout << endl;
return 0;}
Онлайн всего: 4
Гостей: 4
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте