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*が回文を指しているかどうかをチェックする関数です。
ここで2つのポインタ
pt1-開始から開始fwdspt2-
終了から開始後方に移動し
ます。途中で出会ったら続行したくないので
、常にpt1かどうかを確認します。なぜですか。*pt1と*pt2を比較していません。
どのような値を比較しますか?