一个关于C++递归的有关问题

【求助】一个关于C++递归的问题
现在要求递归求一个字符串的逆转(比如输入abc,输出cba),函数名reverseString,参数必须要const修饰
根据如下思路写:
char last = input[len - 1];
string shorter = input.substr(0, len - 1);
return last + reverseString(shorter);

------解决思路----------------------
按照提示的思路写的,仅供参考
#include <string>
#include <iostream>

using namespace std;
/*

现在要求递归求一个字符串的逆转(比如输入abc,输出cba),函数名reverseString,参数必须要const修饰
根据如下思路写:
char last = input[len - 1];
string shorter = input.substr(0, len - 1);
return last + reverseString(shorter);

*/
string reverseString(const string inputstr)
{

if (!inputstr.empty())
{
int len = inputstr.length();
const string shorter = inputstr.substr(0, len - 1);
char clast = inputstr[len - 1];
return clast + reverseString(shorter);
}
else
return "";
}

int main(void)
{
string result = reverseString("a45b12c");
cout << result << endl;
return 0;
}