Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PALINDROME


Information sur la source

Catégorie :Chaîne de caratère Niveau : Débutant Date de création : 10/03/2005 Date de mise à jour : 14/03/2005 13:21:10 Vu : 5 834

Note :
9,43 / 10 - par 7 personnes
9,43 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description


Hello all !

tout d'abord, pour ceux qui ne savent pas ce qu'est un palindrome :
Un palindrome, c'est un texte dont la succession des lettres est la même quand on le parcourt
de gauche à droite ou de droite à gauche.
Bref, c'est une phrase qui peut se lire dans les deux sens.

Un lien vers le grand palindrome de Georges Perec : (il fait exactement 1273 mots)
     "http://homepage.urbanet.ch/cruci.com/lexique/palindrome.htm"

Et encore quelques exemples de palindrome :
    - Engage le jeu que je le gagne
    - L'ami naturel ? Le rut animal
    - Eh ! Ca va la vache ?
    - Car tel Ali, il a le trac
    - Oh, cela te perd répéta l'écho
Et je fini la liste avec le meilleur des palindromes : c'est bien sur le classique "PHP" :-)

Donc voila, ce petit script permet tout simplement de vérifier si ce que vous rentrez est un palindrome ou non ?


 

Source

  • <?php
  • echo '<form action="'.$_SERVER['PHP_SELF'].'" method=get">
  • Entrer votre phrase ici : <input type="text" name="phrase" size="50" />
  • </form>';
  • if(isset($_GET['phrase']))
  • {
  • /* on verifie l'état des magic_quotes */
  • if(get_magic_quotes_runtime()==1)
  • {
  • $phrase = stripslashes($_GET['phrase']);
  • }
  • else
  • {
  • $phrase = $_GET['phrase'];
  • }
  • /* on remplace les caracteres avec accent */
  • $phrase= strtr($phrase,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"
  • ,"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
  • /* on passe tout en minuscule et on supprime les caracteres speciaux */
  • $special = array(" ", "!", ":", "?", ".", "/", "$", "&", "%", "'", ",");
  • $phrase = strtolower(str_replace($special,"",$phrase));
  • /* on inverse le sens des lettres de la phrase */
  • $inverse = strrev($phrase);
  • echo '<p style="color:#ff0000;font-size:18px;"><strong>"'.$_GET['phrase'].'"</strong> ';
  • if($phrase==$inverse) echo 'est un palindrome'; else echo 'n\'est pas un palindrome';
  • echo '</p>';
  • }
  • ?>
<?php
echo '<form action="'.$_SERVER['PHP_SELF'].'" method=get">
Entrer votre phrase ici : <input type="text" name="phrase" size="50" />
</form>';

if(isset($_GET['phrase']))
{
    /* on verifie l'état des magic_quotes */
    if(get_magic_quotes_runtime()==1)
    {
        $phrase = stripslashes($_GET['phrase']);
    }
    else
    {
        $phrase = $_GET['phrase'];
    }
    /* on remplace les caracteres avec accent */
    $phrase= strtr($phrase,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"
                            ,"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
    /* on passe tout en minuscule et on supprime les caracteres speciaux */
    $special = array(" ", "!", ":", "?", ".", "/", "$", "&", "%", "'", ",");
    $phrase = strtolower(str_replace($special,"",$phrase));
    
	/* on inverse le sens des lettres de la phrase */
    $inverse = strrev($phrase);
    
    echo '<p style="color:#ff0000;font-size:18px;"><strong>"'.$_GET['phrase'].'"</strong> ';
    if($phrase==$inverse) echo 'est un palindrome'; else echo 'n\'est pas un palindrome';
    echo '</p>';
}
?>

Conclusion

pour finir, je vais quand même remercier "malalam" ;)
car c'est lui (enfin plutot son pseudo) qui m'a donné l'idée de faire ce petit bout de code !

voila, n'hésitez pas à laisser vos commentaires !


 

Historique

10 mars 2005 22:13:57 :
rajout du lien vers le palindrome de Georges Perec
10 mars 2005 22:17:04 :
11 mars 2005 11:23:45 :
vérification de l'état des magic_quotes
14 mars 2005 13:21:11 :
amelioration du code : rajout de la fonction strrev()

Commentaires et avis

signaler à un administrateur
Commentaire de LuckyLuck le 10/03/2005 21:18:47

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 ;) )

signaler à un administrateur
Commentaire de Taka_s_tiger le 10/03/2005 22:01:23

Élu par cette crapule
eluparc ettec rap ulÉ

signaler à un administrateur
Commentaire de bob le 10/03/2005 22:06:34

moi aussi je suis assez fan de palindrome
je ne sais pas pourquoi mais j'aime bien ça ?

signaler à un administrateur
Commentaire de malalam le 11/03/2005 09:31:17 administrateur CS

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).

signaler à un administrateur
Commentaire de tucsoufle le 11/03/2005 11:34:12

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 !!!

signaler à un administrateur
Commentaire de Inekman le 11/03/2005 13:38:54

"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

signaler à un administrateur
Commentaire de la_pin le 11/03/2005 17:36:22

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 !

signaler à un administrateur
Commentaire de malalam le 14/03/2005 09:18:36 administrateur CS

Dis, j'y pense, ca aurait pas ete plus simple de comparer avec strrev() ?

signaler à un administrateur
Commentaire de tucsoufle le 14/03/2005 13:26:05

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

@+

signaler à un administrateur
Commentaire de issoux le 26/04/2005 01:18:46

bonjour, voila le code du palindrome en "c "sans la fonction strrev!! ça a l'air de marcher...

[code]

#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;

}[/code]

signaler à un administrateur
Commentaire de issoux le 26/04/2005 01:20:28

sorry mais est-ce qu'un admin pourrait replacer mon code au bon endroit!! sorry pour l'erreur

merci.

signaler à un administrateur
Commentaire de malalam le 26/04/2005 09:02:56 administrateur CS

Lol :-)
Non mais c'est sympa aussi de l'avoir la, le php et le C sont de proches parents :-)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.