#include #define LEN 256 int main(void) { char str[LEN]; /* 文字列を格納する配列 */ int kaibun; /* 回文なら 1 そうでなければ 0 */ /* 文字列の入力 */ scanf("%s", str); /* 回文チェック ここから */ /* 文字列の始まりと終わりのポインタを取得する。 */ char *start = str, *end = str; while (*end != '\0') end++; end--; /* 終わりと始まりのポインタの差が1未満(=同じか逆転)になったらループを終了 最初は回文が成立している前提で、もし不一致があったらflagを0にして終了 始まりを1進め、終わりを1戻しもう一度行う。 */ kaibun = 1; while (end - start >= 1) { if (*start != *end) { kaibun = 0; break; } end--; start++; } /* ここまで */ printf("%s is ", str); if (!(kaibun)) { printf("not "); } printf(" Kaibun.\n"); return 0; }