Why would you even try to reverse a string recursively? It's a very inefficient way to do it...
But ... it's pretty simple.
This has a very strong "homework" smell to it, so I'm not going to give you any "real" code.
write a function that accepts two parameters, both pointers to character:
void Reverse(char* in, char* out)
Inside the function compare in and out:
in < out swap characters between in and out, call Reverse with in + 1 and out - 1.
in == out )
--- do nothing.
in > out )
See what I mean? Simple. But very, very inefficient - a loop is much simpler and easier to work with.