C++检查回文时如何忽略上下的区别?
C++ How to ignore the difference between upper and lower when checking Palindrome?
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;
}
我写了检查回文的代码,但是忽略了忽略上下差的要求。
我对此一无所知。
你能帮助我吗?
谢谢!
有一个名为 "tolower" 的函数,它会将大写字母转换为小写字母。如果它已经是小写或不是字母,它将 return 值不变。您编写的代码非常接近完全正确,只需稍作改动。
if(*start++ != *end--)
会变成
if(tolower(*start++) != tolower(*end--))
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;
}
我写了检查回文的代码,但是忽略了忽略上下差的要求。 我对此一无所知。 你能帮助我吗? 谢谢!
有一个名为 "tolower" 的函数,它会将大写字母转换为小写字母。如果它已经是小写或不是字母,它将 return 值不变。您编写的代码非常接近完全正确,只需稍作改动。
if(*start++ != *end--)
会变成
if(tolower(*start++) != tolower(*end--))