PALINDROME

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 déc. 2007 à 22:37
guillaume_00 Messages postés 18 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 19 mars 2009 - 19 déc. 2007 à 09:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45115-palindrome

guillaume_00 Messages postés 18 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 19 mars 2009
19 déc. 2007 à 09:38
Pas mal mais ne gère ni les espaces, ni les accents, ni les majuscules et ni les appostrophes. Impossible par exemple de reconnaitre le plus long palindrome comme tel (Tu l'as trop écrasé César ce port salut).
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 déc. 2007 à 22:42
J'avais d'ailleurs deja mis ceci en commentaire sur cette source.
http://www.cppfrance.com/codes/PALINDROME-OU-PAS_27468.aspx

Le sujet me semble avoir été largement assez traité sur cppfrance, cette source ne me semble pas indispensable, elle restera jusqu'à demain soir.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 déc. 2007 à 22:37
en voila une qui gère les espaces, 2 pointeurs suffisent, aucun besoin d'itérateur.

int __stdcall EstPalindrome(char *psz)
{
char *c, *d;
c d psz;
while(*d) d++;
d--; // SUR DERNIER CHAR
while(c < d) {
while(*d == 32) d--; // SAUTE ESPACES
if(c >= d) break; // OK
while(*c == 32) c++; // SAUTE ESPACES
if(c >= d) break; // OK
if(*c != *d) return 0; // NON PALINDROME
c++; d--;
}
return 1;
}
Rejoignez-nous