Работа над небольшой программой, которая будет принимать строку от пользователя и проверять, является ли она палиндромом. (Фраза, написанная таким же образом в обратном направлении, например «Никогда нечетно или нечетно»). Я уже создал функции, которые удаляют пробелы и любые неалфавитные символы из строки, а затем сделали копию строки. (Все три из этих функций были полностью протестированы, проблем здесь нет.) Сейчас я работаю над функцией, которая должна сравнивать обе строки, чтобы увидеть, написана ли строка одинаково вперед и назад.
Функция должна решить, является ли она палиндромом, просматривая основную строку вперед и копию назад и сравнивая каждый элемент. И все же я получаю ложный ответ, что я делаю не так?
_Bool isPalindrome(char str[], char copy[])
{
int i = 0;
int count = 0, j = 0;
// loop through the main string to find the number of elements
while(str[j] != '\0')
{
count++;
j++;
}
//loop through the main string until the null character.
while(str[i] != '\0')
{
// to loop through the copy backwards,
// use the size of the first and subtract i
size = count - i;
if(str[i] != copy[size])
return FALSE;
i++;
}
return TRUE;
}