要求只能使用str[ ]数组,不能使用任何字符变量或者其他的字符存储空间。以&作为结束标记。且&也包含在数组中(即&作为数组的第一个元素出现)
#include <stdio.h>
void ReverseStr(char *ch)
{
if(*ch=='&')
{
printf("&");
return;
}
ReverseStr(ch + 1);
printf("%c", *ch);
}
int main()
{
char str[20];
gets(str);
ReverseStr(str);
}
若没有条件限制,可以使用如下算法递归逆置字符串
#include <stdio.h>
int i = 0;//需要使用全局变量
void InvertStr(char Str[])
{
char ch;
ch=getchar();
if (ch == '&') printf("&");
if (ch!= '&') //规定'&'是字符串输入结束标志
{
InvertStr(Str);
Str[i++] = ch;//字符串逆序存储
}
Str[i] = '\0'; //字符串结尾标记
}
int main()
{
char Str[50];
InvertStr(Str);
puts(Str);
return 0 ;
}