怎样用递归方法倒序string形式的字符?

函数方程
string reverseString(string letters)

subString(),如果没有循环到for(String.length()), 那么继续递归到 subString(String.length())+subString(index,String.length()-index), 思想是这样子的 望采纳

#include "stdio.h"
char *ss(char b[],int n,int m)
{
char ch;
if(m<n/2)
{
ch=b[m];
b[m]=b[n-m-1];
b[n-m-1]=ch;
//printf("%s\n",b);
return ss(b,n,m+1);
}
else
{
return b;
}
}
int main()
{
char b1[20];
int n=0;
scanf("%s",b1);
while(b1[n++]!='\0');
n-=1;
printf("%s",ss(b1,n,0));
}

int leng(string str)
{
int sum = 0;
for (int i = 0; i < str.length(); i++)
{
if (str[i]!='\0')
{
sum++;
}
}
return sum;
}
string Sort(string & str)//逆序字符串
{
string news;
if (leng(str)==0)
{
return news;
}
if (len(news)<len(str))
{
news = news + str[str.length()-leng(str)];
str[str.length() - leng(str)] = '\0';
}
else
{
news = news + str[str.length() - leng(str)];
str[str.length() - leng(str)] = '\0';
}
return Sort(str) + news;
}