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

@+
Afficher les 13 commentaires