begin process at 2012 02 11 17:22:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > PALINDROME

PALINDROME


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :8 315

Auteur : tucsoufle

Ecrire un message privé
Commentaire sur cette source (13)
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/pali ndrome.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()

 Sources du même auteur

GENERATEUR DE MOT DE PASSE FACILEMENT MÉMORISABLE

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

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

Commentaire de Taka_s_tiger le 10/03/2005 22:01:23

Élu par cette crapule
eluparc ettec rap ulÉ

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 ?

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

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

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

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 !

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() ?

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

@+

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]

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.

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

Commentaire de madiop03 le 03/01/2010 00:11:03

l'eternel consommateur dit MERCI!!!!!!!!!!!!!!!

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,696 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales