设计递归函数将字符串str中的内容反向打印出来。
此题要求递归求解,且不允许使用全局变量,否则没有分。
函数接口定义:
void reversePrint(char str[]) ;
其中 str
是用户传入的参数, 为指定字符串。函数没有返回值。
裁判测试程序样例:
#include<stdio.h>
void reversePrint(char str[]) //将字符串str中的内容反向打印的函数;
int main() {
char s[100] ;
scanf( "%s" , s );
reversePrint(s) ;
printf("\n") ;
return 0;
} /* 请在这里填写答案 */
输入样例:
ABCdefg
输出样例:
gfedCBA
思路:求出字符串的长度,如果为1则直接打印,如果大于一则输出最后一个字符然后递归,注意要将最后一个字符删去,直接让str[len-1]=str[len]即可;
void reversePrint(char str[])
{
int count=0;
for(int i=0;str[i]!='\0';i++)count++;
if(count==1){
printf("%c",str[0]);
}
else{
printf("%c",str[count-1]);
str[count-1]=str[count];
reversePrint(str);
}
}