Ваше центральное сравнение некорректно:
if (str[i] != str[i+halflen])
Это не сравнение двух символов, которые вы думаете.
Попробуйте ввести "HelloHello" в вашу программу, она скажет, что это палиндром!
Вам нужно сравнить эти два:
if (str[i] != str[len-i-1])
(и исправить скобки, как предложено в другом ответе)