[题目分析]实现字符串的逆置并不难,但本题“要求不另设串存储空间”来实现字符串逆序存储,即第一个输入的字符最后存储,最后输入的字符先存储,使用递归可容易做到。
[算法描述]
void InvertStore(char A[])
//字符串逆序存储的递归算法。
{char ch;
static int i = 0;//需要使用静态变量
cin>>ch;
if (ch!= '.') //规定'.'是字符串输入结束标志
{InvertStore(A);
A[i++] = ch;//字符串逆序存储
}
A[i] = '\0'; //字符串结尾标记
}
[代码实现]
#include <stdio.h>
void InvertStore(char A[])
//字符串逆序存储的递归算法。
{
char ch;
static int i = 0;//需要使用静态变量
ch=getchar();
if (ch!= '\n') //规定'\n'是字符串输入结束标志
{
InvertStore(A);
A[i++] = ch;//字符串逆序存储
}
A[i] = '\0'; //字符串结尾标记
}
int main()
{
char a[50];
InvertStore(a);
puts(a);
return 0 ;
}