Given a string, reverse the string recursively calling the reverse function without swapping the characters of the string
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 256
int i=0; //Global Variable to have a counter variable in static context
void reverse(char **s)
{
/* Until the end of the string ('\0' , the null character) is reached */
if(**s=='\0')
return;
/* Increment the Address the pointer is pointing to */
*s=*s+1;
/* Call recursively for the rest of the string */
reverse(s);
i++;
/* Print the characters in reverse */
printf("%c",*(*s-i));
}
int main(void) {
char *s;
/* Dynamically allocate the memory for the input string */
s=(char*)malloc(sizeof(char)*MAX);
/* Get the input string from the user */
scanf("%s",s);
/* Call the recursive function to reverse the string */
reverse(&s);
return 0;
}