I will admit, this is a homework problem, but I have tried writing the code and am having a bit of trouble getting it working.
The function is supposed to search through a string to find the first instance of a character and return it's index. I have it so that it returns the value of -1 if the character is not found, which is a requirement, but I can't get it to return the index correctly.
This is what I have currently that does not work accurately:
Assuming you need to use recursion you could have str_char_find_r also take an int for the current index. When you call the function you would pass in 0 for the index and each recursion you would increment it.
I agree with LBEaston. If you don't want to change the signature of your func, you could code it with the help of an auxillary function. Or you could use the extra as a "start from" index, and default it to 0.
You also have one too many returns, which some compilers will dislike (inaccessible code warning).