int palindrome(char * str){
char * pt1 = str;
char * pt2 = str;
if(pt1==NULL){
std::cout<<"\n invalid string";
return -1;
}
while(*pt2 != '\0')
pt2++;
pt2--;
while(pt1 < pt2){ // why does this work correctly ?
if(*pt1 != *pt2){
std::cout<<"\n not palindrome";
return 0;
}
else{
pt1++;
pt2--;
}
}
std::cout<<"\n yes palindrome";
return 1;
}
你好
,这是一个检查传递的 char* 是否指向回文的函数。
这里有两个指针
pt1 - 从开始移动 fwds
pt2 - 从结束开始向后移动
现在我不希望它们在中间相遇时继续..
所以我检查是否总是 pt1 为什么?我不是在比较 *pt1 和 *pt2。
它比较什么值?