bool函数无法正确比较数组

时间:2012-02-29 16:52:46

标签: c arrays string function boolean

处理一个小程序,该程序将从用户那里获取一个字符串并查看它是否是回文。 (一个拼写相同的短语,如“Never odd or even”)我已经构建了从字符串中删除空格和任何非字母字符的函数,然后也创建了字符串的副本。 (所有这三个函数都经过了全面测试,没有任何问题。)现在我正在研究一个需要比较两个字符串的函数,看看字符串是否以相同的方式向前和向后拼写。

该函数应通过向前循环主字符串并向后循环并比较每个元素来决定它是否是回文。然而,我一直得到一个错误的答案,我做错了什么?

_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;
}

1 个答案:

答案 0 :(得分:0)

应该是:

   size = count - i - 1;