一、题目要求
递归函数是一种在函数内容调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分:基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。
请根据要求在begin、end间完成代码,不要改变代码中其他部分。
示例输入和输出:
输入:Enter a string:hello,world!
输出:Reversed string:!dlrow,olleh
二、程序代码
#include <stdio.h>
#include <string.h>
void reverseString(char* str)
{
///Begin///
// 递归基
int len = strlen(str);//调用上面的字符串长度函数;
if(len <= 1) //当字符串长度小于等于1时,不执行;
return ;
else
{
char temp = str[0]; //将第一个字符的值保存在temp中;
str[0] = str[len-1];//将最后一个字符赋给第一个字符;
str[len-1] = '\0'; //将最后一个字符的内容赋为'\0';
reverseString(str+1);//递归调用下一次反转;
str[len-1] = temp; //将temp赋给当前的最后一个字符;
}
// 递归调用
End
// 输出当前字符
// printf("%c", str);
}
int main()
{
char str[100];
printf("Enter a string: \n");
scanf("%s", str);
printf("Reversed string: \n");
reverseString(str);
printf("%s", str);
printf("\n");
return 0;
}
三、程序在DEV C++测试验证