#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"); } |