【问题标题】:C++ How to ignore the difference between upper and lower when checking Palindrome?C++检查回文时如何忽略上下之间的差异?
【发布时间】:2018-03-16 21:09:33
【问题描述】:
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; 
}

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

【问题讨论】:

    标签: c++ palindrome


    【解决方案1】:

    有一个名为“tolower”的函数,它将接受一个大写字母并将其转换为小写字母。如果它已经是小写字母或者不是字母,它将返回不变的值。您编写的代码非常接近完全正确,只需稍作改动即可。

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

    会变成

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

    【讨论】:

    • 请注意,tolower 取决于区域设置,默认情况下仅适用于 ASCII 字母,除非您指定不同的区域设置
    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    相关资源
    最近更新 更多