#include<stdio.h>
#include<conio.h>
int is_palindrom(const char* jj);
int main(char *args){
int rr = is_palindrom("otto");
printf("rsult is %d", rr);
getch();
}
int is_palindrom(const char* palin)
{
int size = strlen(palin), i=0;
for (i=0;i<=(size/2); ++i)
{
if(palin[i] != palin[(size - i -1)])
{
return 1;
}
}
return 0;
}
上記のコード スニペットを使用してコードを実行したところ、問題なく動作しました。回文が入力された場合は 0 を返し、入力された値が回文でない場合は 1 を返します。関数の主要部分はループ
for (i=0;i<=(size/2); ++i)
であり、比較if(palin[i] != palin[(size - i -1)])
はループが 0 から始まり、条件 palin[0] 要素と palin[4-0-1] で、つまりこの場合の palin[3] 要素の最初の o と最後の o は次のとおりです。マップされ、インクリメント++i
が行われ、palin[second] 要素と palin[second-last] 要素のネスト マッピングが発生するため、`++i' または 'i++' のいずれかを使用できます。