#include <stdio.h> /* directive du preprocesseur */ #include <ctype.h> /* des petites fonctions cool ! */ int palindrome(int t[]) { int haut, bas; haut=TAILLE-1; bas=0; while (haut>bas) { /* alors, tant que le caractere n'est ni une lettre ni un chiffre, on passe ... */ while ( (t[haut]==' ') || !(isalnum(t[haut])) ) haut--; while ( (t[bas]==' ') || !(isalnum(t[bas])) ) bas++; /* Si c'est une majuscule, on passe en minuscule */ if(isupper(t[haut])) tolower(t[haut]); if(isupper(t[bas])) tolower(t[bas]); /* si les caracteres courant ne sont pas egaux pas un palindrome */ if (t[bas]!=t[haut]) return 0; } return 1; }

Dans ctype.h, il y a plusieurs fonctions qui permettent de faire des tests sur des caractères ces fonctions sont :

int isalnum(int c); /* teste si c'est un caractere alphanumerique */ int isalpha(int c); /* teste si c'est une lettre */ int iscntrl(int c); /* teste si c'est un caractere de controle */ int isdigit(int c); /* teste si c'est un chiffre */ int isgraph(int c); /* teste si c'est un caractere graphique */ int islower(int c); /* teste si c'est une minuscule */ int isprint(int c); /* teste si c'est un caractere imprimable */ int ispunct(int c); /* teste si c'est un signe de ponctuation */ int isspace(int c); /* teste si c'est un espace */ int isupper(int c); /* teste si c'est une majuscule */ int isxdigit(int c); /* teste si c'est un chiffre hexadecimel */ int tolower(int c); /* passe la lettre de majuscule en minuscule */ int toupper(int c); /* passe la lettre de minuscule en majuscule */