Я пытаюсь рекурсивно изменить строку. Если str1 == "hello"
, я хочу, чтобы str1
стал "olleh"
. В моей рекурсивной функции я пытаюсь скопировать первый символ во временную переменную, передать строку рекурсивно и добавить содержимое временной переменной в конец возвращаемой строки. До сих пор это мой код,Рекурсия обратной строки C++
# include <iostream>
# include <string.h>
using namespace std;
string string_reverse(string) ;
int main()
{
string str1 = "hello";
cout << string_reverse(str1) << endl;
return 0;
}
string string_reverse(string str1)
{
if (str1.length() == 1)
{ return str1;}
else
string temp;
temp.assign(str1, 0, 1);
str1.erase(0, 1);
string_reverse(str1);
return str1.append(temp);
}
Однако я получаю сообщение об ошибке говорящее temp
не была объявлена в области.
Если вы используете редактор, автоматически отменяющий ваш код, вы, вероятно, сразу заметили бы проблему. – Barmar