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--))