Answer :
In C, strings aren't a data type. Strings are handled as an array of char (acters). Therefore, your two palindrome assignments are basically the same.
Recursion is something that is probably the most mind warping thing to learn in programming, but it is VERY well worth it. There's a number of problems that are recursive in nature. One that you're familiar with is doing addition with pencil and paper. Think about it: you align the numbers in columns as you're "going in", when you run out of numbers, the base case, you start adding the column of numbers and the carry and write out the least significant digit of the total and returning the most significant digit[s] up the "unwind".
Recursion is something that is probably the most mind warping thing to learn in programming, but it is VERY well worth it. There's a number of problems that are recursive in nature. One that you're familiar with is doing addition with pencil and paper. Think about it: you align the numbers in columns as you're "going in", when you run out of numbers, the base case, you start adding the column of numbers and the carry and write out the least significant digit of the total and returning the most significant digit[s] up the "unwind".