#include < stdio.h> #include < stdlib.h> #include < string.h>
int est_palidrome(char *str) { bool result = false; //если слово содержит не более 1 символа if(strlen(str) <= 1) результат = истина; //в противном случае, если первый символ совпадает с последним else if(str[0] == str[strlen(str)-1]) { //le Во-первых и последний символ проверяются, чтобы они были удалены char temp[strlen(str)-2]; //memcpy позволяет скопировать часть str in temp -2: '\0' + последний удаленный символ memcpy( temp, & str[1], strlen(str) - 2 ); // '\0' указывает границу temp[strlen(str) - 2] = '\0'; //рекурсивный вызов результат = est_palidrome(temp); } возвращаемый результат; }
int main() { char str[20]; printf("Введите строку.\n"); scanf("%s",str);
if(est_palidrome(str)) printf("Это палиндром!\n"); else printf(Это не палиндром! \n"); system("pause"); } |