Vérifier si un mot est un Palindrome en C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int est_palidrome(char *str)
{
    bool resultat = false;
    //si le mot contient au plus 1 caractère
    if(strlen(str) <= 1)
       resultat = true;
    
    //sinon si le premier caractère
    //correspond au dernier
    else if(str[0] == str[strlen(str)-1])
         {
            //le premier et le dernier caractère
            //sont vérifiés alors on les élimine
            char temp[strlen(str)-2];
            //memcpy permet de copier une partie
            //de str dans temp
            //-2: le '\0' + le dernier caractère éliminé
            memcpy( temp, &str[1], strlen(str) - 2 );
            // '\0' indique la limite
            temp[strlen(str) - 2] = '\0';
            //appel récursive
            resultat = est_palidrome(temp);
         }
    return resultat;
}

int main()
{
    char str[20];
    printf("Entrer une chaine.\n");
    scanf("%s",str);

    if(est_palidrome(str))
        printf("C'est un palindrome!\n");
    else
        printf("Ce n'est pas un palindrome! \n");
    system("pause");
}