Palindrome ou pas ??

Contenu du snippet

En cherchant dernierement un code source sur ce site pour tester une chaine de caractere et voir si il s'agissait d'un palindrome ou pas... j'ai été surpris de ne pas en trouver qui fonctionnaient bien.

Je pense que celui la fonctionne corectement et sera modifié pour plus de possiblités encore.

ps: c'est un test simple avec des boucles for, while... pas de grosse fonctions bien compliquées :)

pour les débutants comme moi quoi :)

Source / Exemple :


#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int main()
{

char phrase[100]="",test[100]="",test2[100]="";
int i=0,nblettre=0,j=0;

cout<<"========Entrer la phrase a verifier========"<<endl;
gets(phrase);

nblettre=strlen(phrase); //calcule du nombre de caractere de la phrase !

for(i=0;i<=nblettre;i++){
if (phrase[i]==' '){
j=j++;                  // Initialisation de J ! sans cette etape, lors de l'affichage des caracteres vide apparaitraient :)
}                       //
}                       //
                        //
                        //
j=nblettre-j-1;         // pour le /0

//cout<<j<<endl;

for (i=0;i<=nblettre;i+0,j--){

                if (phrase[i]!= ' '){
                test[j]=phrase[i];
                i=i++;
                }                              // Ce test permet de ne pas garder les espaces du texte en ne les envoyant
                                               // pas vers le tableau test[j]
                                               //permet en plus de mettre le mot à l'envers avec le j-- !

                else{
                test[j]=phrase[i+1];
                i=i+2;
                }

}
                               // réinitialisation des valeurs !
j=0;                          //
i=0;

for (i=0;i<=nblettre;i+0,j++){

                if (phrase[i]!= ' '){
                test2[j]=phrase[i];                              //remet la phrase a l'endroit sans 'espace' dans le tableau test2 !
                i=i++;
                }
                else{
                test2[j]=phrase[i+1];
                i=i+2;
                }

}

cout<<"\n========================================================="<<endl;
cout<<"\nvoici la phrase entree a l'envers (sans espace): \n";
for (i=0;i<=nblettre;i++){
cout<<test[i];
}
cout<<"\n";

j=0;
cout<<"\n\nvoici la phrase entree a l'endroit (sans espace): \n";

for (j=0;j<=nblettre;j++){
cout<<test2[j];
}
cout<<"\n";
cout<<"========================================================="<<endl;

i=0;
j=0;

cout<<"\n";
if (test[0]!=test2[0]){
cout<<"\nVotre phrase:"<<phrase<<" n'est pas un palindrome.\n"<<endl;           //on compare le premier cacactere, si le premier est
system("PAUSE");                                                              //different, cela ne sert a rien de rentrer dans uns boucle
      return 0;
}

while (test[i] = test2[i]){

for (i=0;i=nblettre;i++){

cout<<"\nVotre phrase:"<<phrase<<" est un palindrome.\n"<<endl;                //si les premiers sont bons, ont test le reste !
system("PAUSE");
      return 0;
}
}

      system("PAUSE");
      return 0;
}

// **************************************************************
//******************** By Dambi *********************************
//*********************dambi@wanadoo.fr**************************
//***************************************************************

Conclusion :


Un ti coucou à notre ti prof de l'iloi...

ps: je ne suis pas un tueur :'(

:D
mise a jour prochainement pour plus de convivialité :)

couleur etc ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.