tried the code in Visual Studio 2008. Reduced the code to:
printf("%s %s a palindrome\n",str,PalindromeChecker(str)?"IS":"IS NOT");
and it (wrongly) said IS NOT. Have a look at the code in the PalindromeChecker function and tell me what you think the first for() loop will do. Will that "if" ever evaluate true?