编写一个C程序,使用递归函数或递归来反转字符串。在此字符串示例中,stringReverse函数接受指针,并通过递归调用该函数来反转字符数组。
#include <stdio.h>
#include <string.h>
void stringReverse(char *Str)
{
if(*Str)
{
stringReverse(Str + 1);
printf("%c", *Str);
}
}
int main()
{
char Str[100];
printf("Please Enter any String to Reverse = ");
fgets(Str, sizeof Str, stdin);
printf("\nString after Reversing = ");
stringReverse(Str);
printf("\n");
}

此程序使用临时变量、递归函数(递归)和指针来反转给定的字符串。
#include <stdio.h>
#include <string.h>
void stringReverse(char *Str, int i, int len)
{
char temp;
if (i >= len)
{
return;
}
temp = *(Str + i);
*(Str + i) = *(Str + len);
*(Str + len) = temp;
stringReverse(Str, ++i, --len);
}
int main()
{
char Str[100];
printf("\nPlease Enter any Text = ");
fgets(Str, sizeof Str, stdin);
stringReverse(Str, 0, strlen(Str) -1);
printf("\nResult = %s\n", Str);
return 0;
}
Please Enter any Text = hello c programmers
Result =
sremmargorp c olleh
这是另一个使用递归反转字符串的示例。
#include <stdio.h>
void stringReverse()
{
char ch;
scanf("%c", &ch);
if(ch != '\n')
{
stringReverse();
printf("%c", ch);
}
}
int main()
{
printf("Please Enter any Text = ");
stringReverse();
printf("\n");
}
Please Enter any Text = c examples
selpmaxe c