Итак, сначала мы читаем ввод от пользователя и сохраняем его в строке с именем s; мы получаем размер add и помещаем его в массив char (ведь массив char можно рассматривать как строку), дополнительный - только для символа '\ 0'. затем я передаю его в обратную функцию и затем распечатываю массив.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin>>s;
unsigned int StringSz = s.length();
char arr[StringSz+1];
arr[StringSz] = '\0';
reverse(arr,s);
cout << arr;
return 0;
}
Теперь, как работает наша функция?
Мы передаем массив, строку и позицию, в которой мы находимся в данный момент. в, затем мы переключаем первый элемент с последним элементом, мы переключаем второй элемент с одним перед последним и делаем это, пока не достигнем конца строки.
void reverse(char* arr,string& s,int start=0)
{
if(start==s.length())
return;
arr[start] = s[s.length()-start-1];
reverse(arr,s,start+1);
}