C++ C++;如何在检查回文时忽略上下之间的差异? bool isPalindrome(常量字符*s1) { 常量字符*开始,*结束; 开始=s1; end=s1+strlen(s1)-1; while(开始

C++ C++;如何在检查回文时忽略上下之间的差异? bool isPalindrome(常量字符*s1) { 常量字符*开始,*结束; 开始=s1; end=s1+strlen(s1)-1; while(开始,c++,palindrome,C++,Palindrome,我编写了关于检查回文的代码,但忽略了忽略上下差异的要求。 我对此一无所知。 你能帮助我吗? 谢谢 有一个名为“tolower”的函数,它将接受一个大写字母并将其转换为小写字母。如果已经是小写或不是字母,则返回的值将保持不变。您编写的代码几乎完全正确,只需稍作修改 bool isPalindrome(const char *s1) { const char *start, *end; start = s1; end = s1 + strlen(s1) - 1; while

我编写了关于检查回文的代码,但忽略了忽略上下差异的要求。 我对此一无所知。 你能帮助我吗?
谢谢

有一个名为“tolower”的函数,它将接受一个大写字母并将其转换为小写字母。如果已经是小写或不是字母,则返回的值将保持不变。您编写的代码几乎完全正确,只需稍作修改

bool isPalindrome(const char *s1)
{

  const char *start, *end;

  start = s1;
  end = s1 + strlen(s1) - 1;


  while (start < end)
      if(*start++ != *end--)
        return false;
  return true; 
}
将成为

if(*start++ != *end--)

请注意,
tolower
依赖于区域设置,默认情况下仅适用于ASCII字母,除非指定其他区域设置
if(tolower(*start++) != tolower(*end--))