设计递归函数将字符串str中的内容反向打印出来。
此题要求递归求解,且不允许使用全局变量,否则没有分。
函数接口定义:
void reversePrint(char str[]) ;
其中 str
是用户传入的参数, 为指定字符串。函数没有返回值。
裁判测试程序样例:
#include<stdio.h>
//将字符串str中的内容反向打印的函数
void reversePrint(char str[]) ;
int main()
{
char s[100] ;
scanf( "%s" , s );
reversePrint(s) ;
printf("\n") ;
return 0;
}
/* 请在这里填写答案 */
输入样例:
ABCdefg
输出样例:
gfedCBA
MY IDEAS''
1.递归?判断是否等于\0,然后再归回去
2.去看了博客的解析,发现是要用指针,因为要直接访问地址的值,还要进行修改。
3.函数大概就是,对指针到达的地址进行访问,如果不是\0,则指针ptr++,访问下一个元素,直到是\0,然后再ptr--,返回到上一个值,即数组最后一个元素,然后输出后,要把此元素也变为\0,方便下一次使用函数时,它能够输出倒二的元素。
4.直到ptr==str,即到了第一个元素,停止递归使用函数
void reversePrint(char str[])
{
char *Ptr=str;//用指针记录数组第一个的位置
for ( ;*Ptr!='\0';)
{
Ptr++;
}
Ptr--;
printf("%c",*Ptr);
*Ptr='\0';
if (Ptr!=str)
reversePrint(str);
}