Code:
#include <stdio.h>
#include <string.h>
void recurse(char *p, char *q)
{
printf("recurse(\"%s\",\"%s\");\n", p, q);
if(p < q)
{
char tmp = *p;
*p = *q;
*q = tmp;
recurse(p + 1, q - 1);
}
}
void recerse(char *s)
{
printf("recerse(\"%s\");\n", s);
if(s && *s)
{
size_t len = strlen(s) - 1;
printf("strlen(\"%s\");\n", s);
char *p = s;
char *q = p + len;
recurse(p, q);
}
}
int main( void )
{
char text[] = "Hello world";
recerse(text);
return 0;
}
/* my output
recerse("Hello world");
strlen("Hello world");
recurse("Hello world","d");
recurse("ello worlH","lH");
recurse("llo woreH","reH");
recurse("lo woleH","oleH");
recurse("o wlleH","wlleH");
recurse(" olleH"," olleH");
*/