PALINDROME

cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005 - 10 mars 2005 à 21:18
madiop03 Messages postés 1 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 3 janvier 2010 - 3 janv. 2010 à 00:11
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/30026-palindrome

madiop03 Messages postés 1 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 3 janvier 2010
3 janv. 2010 à 00:11
l'eternel consommateur dit MERCI!!!!!!!!!!!!!!!
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 avril 2005 à 09:02
Lol :-)
Non mais c'est sympa aussi de l'avoir la, le php et le C sont de proches parents :-)
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008
26 avril 2005 à 01:20
sorry mais est-ce qu'un admin pourrait replacer mon code au bon endroit!! sorry pour l'erreur

merci.
issoux Messages postés 58 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 6 mai 2008
26 avril 2005 à 01:18
bonjour, voila le code du palindrome en "c "sans la fonction strrev!! ça a l'air de marcher...


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

int nettoyage (char ch[255])

{ char ch1[255];
  int detect=0;int i,j;

  clrscr();


for (i=0;i<strlen(ch1);i++)
    { strcpy(ch1,NULL);}

printf("%s\n\n",ch);

printf(" pour nettoyer tapez une touche \n");

getch();

for  (i=0;i<strlen(ch);i++)


   { ch[i]=toupper(ch[i]);}   /* MAJ */

 j=0;

 for (i=0;i<=strlen(ch);i++)
   
                          { if (isalpha(ch[i]))
       {ch1[j]=ch[i];j++; }

     else { ch1[j]=ch[i+1]; /* on met rarement deux espaces dans une chaine donc j'ai proc&#8218;d&#8218; ainsi */
    
                                    clrscr();detect++;
    
                                    printf(" un non-caractere d&#8218;tect&#8218;  (%d)\n",detect);
    
                                    getch();
    
                                    clrscr();
  }
    }

   ch1[i]=NULL;

clrscr();

printf("chaine nettoyee =>  %s",ch1);

getch();

return 0;
}






int initchaine (char chaine[255])

{ int lg,i;


lg=strlen(chaine);

for (i=0;i<lg;i++)
  { chaine[i]=toupper(chaine[i]); }
  chaine[i]='\0';


return 0;
}




int palindrome (char chaine[255])

{  int i,j,lg=0;
   int pal=0;

   clrscr();

nettoyage(chaine); 

 lg=strlen(chaine);

   j=lg-1;


for (i=0;i<lg;i++)
    { if (chaine[j]==chaine[i])
  {pal=1; j--;}
      else                        pal=0;break;

    }



initchaine(chaine);

   if (pal==1)
    {   clrscr();printf(" cette chaine est palindrome => %s",chaine);

getch();
    }


   else if (pal==0)  {     clrscr();printf(" cette chaine n\'est pas un palindrome =>  %s ",chaine);

      }   getch();



return 0;

}

int main ()

{
   char ch[25];
   clrscr();

printf(" entrez phrase  => "); fflush(stdin);scanf("%s",&ch);
palindrome(ch);

return 0;

}
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
14 mars 2005 à 13:26
merci malalam, je ne connaissais pas cette fonction
ça enleve quelque lignes de code inutiles donc c'est mieux ;)

donc voila, j'ai mis à jour le code en rajoutant la fonction strrev() qui inverse l'ordre des caractéres dans une chaîne

@+
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
14 mars 2005 à 09:18
Dis, j'y pense, ca aurait pas ete plus simple de comparer avec strrev() ?
la_pin Messages postés 275 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 15 décembre 2005
11 mars 2005 à 17:36
A Toyota

http://www.palindromes.org/

Il y en a des centaines mais la plupart sont en anglais.

Et sinon super source, pas très utile mais sympa !
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
11 mars 2005 à 13:38
"Luce, le valet, te lave le cul" :-P

Comme l'a précisé LuckyLuck, c'est un bon exercice pour manier les chaînes de caractère.

Excellente source.

Inekman.9/10
tucsoufle Messages postés 1250 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 30 septembre 2007 1
11 mars 2005 à 11:34
exact malalam, moi, j'ai magic_quotes est à off
conclusion : je n'y pense pas !!! donc merci malalam...

mais voila, maintenant, c'est réparer !!!
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 mars 2005 à 09:31
Yep, 10 ! C'est une tres bonne idee, originale, et evidemment j'aime aussi jouer avec les mots et les sons...
Et puis si j'en suis l'inspirateur, en plus...!

Par contre, il ne fonctionne pas avec celui de Perec, en l'etat ;-) Et il manque un stripslashes() quand magic_quote est a on (ce qui est le cas dans ma boite).
cs_bob Messages postés 80 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 27 août 2007
10 mars 2005 à 22:06
moi aussi je suis assez fan de palindrome
je ne sais pas pourquoi mais j'aime bien ça ?
Taka_s_tiger Messages postés 32 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 5 juillet 2006
10 mars 2005 à 22:01
Élu par cette crapule
eluparc ettec rap ulÉ
cs_LuckyLuck Messages postés 59 Date d'inscription dimanche 4 mai 2003 Statut Membre Dernière intervention 5 juillet 2005
10 mars 2005 à 21:18
j'aime bien les palindromes, c'est un truc que je fais habituellement qd j'apprend un langage pour maitriser les manipulations de chaines :) Mais bon maintenant j'ai l'impression que les langages se ressemblent tous (hormis le fidèle assembleur, haa le z80 c'était le bon temps ;) )
Rejoignez-nous