Comparaison des valeurs de deux chaines C++

Fermé
forbenster Messages postés 10 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 6 mars 2010 - 6 mars 2010 à 01:18
shadymetal Messages postés 177 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 2 août 2010 - 6 mars 2010 à 02:56
Bonjour
Je dois écrire un programme en C++ qui prend en compte une chaine de caractère initialise et une autre chaine qui doit être entre au clavier par l'utilisateur.
Ce que je suis suppose faire c'est de comparer chaque caractere de la chaine rentree par l'utilisateur par les caracteres de la chaine initialise dans le programme.
Aussitot que je trouve que l'un des caracteres rentre par l'usager est different de l'un des caracteres de la chaine initialisee, le programme doit retournee une valeur boolean false.

Voici ce que j'ai fait :

do
{
for(i=0; i<caractereLu.size(); i++)
for(j=0; j<caractereInitialise.size(); j++)
{
if (caractereLu[i]==caractereInitialise[j])
{
valeur=true;
}

else
valeur=false;
}

}
while(valeur==true);

Merci de votre aide !!!!!!!!

6 réponses

shadymetal Messages postés 177 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 2 août 2010 19
6 mars 2010 à 02:07
au faite c'est pa la peine de comparé chaque letre entre les deux chaine no ? just si le mot tapé par l'utilisateur ne corespon pas avec le mot stoqué ds ta variable , sa retourne false non ?
si c'est sa, tu dois just utilisé la fonction strcmp qui se trouve ds la biblio string.h
donc se que tu dois fair c'est plutot sa:

if (strcmp(chaine1,chaine2)==0) valeur=true



pour info la fonction strcmp renvoi une valeur positif si chaine 1 est superieur de chaine2( pas le nombre mais alphabetiquement)
ou une valeur negativ si chaine 1 est inferieur de chaine2
ou un 0 si chaine 1 est identique a chaine 2
1
shadymetal Messages postés 177 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 2 août 2010 19
6 mars 2010 à 01:27
tu peu essayé d'être un peu plus claire stp j'ai pas tout compris , sans oublié de mettre des accent sur les "e" :d,
0
forbenster Messages postés 10 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 6 mars 2010 1
6 mars 2010 à 01:37
J’ai une chaine de caractère qui comprend les lettres « abcd » (chaine1= « abcd »);

Je demande à l’utilisateur d’entrer une chaine de caractères (chaine2) de n'importe quelle taille et je vérifie si la chaine saisie par l’utilisateur comporte uniquement les lettres de la chaine1.

Si la chaine2 est composée uniquement des lettres de la chaine1 alors mon programme retourne true sinon il
retourne false.

Merci de votre aide, j’espère que je suis un peu plus clair.
0
forbenster Messages postés 10 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 6 mars 2010 1
6 mars 2010 à 02:12
Bonjour,

Au fait oui je comprends ce que tu dis, mais la vraiment c'est chaque lettre qu'il vaut comparer et non pas la longueur de mes chaines.

Par exemple si l'utilisateur rentre une chaine : abbbbbbbbbbcccccccdddddddd

le programme renvoie true

dans le cas ou celui ci rentre : aaaaaaaafffffffffffddddddddddddd

le programme renvoie false, parce que le " f " ne fait pas partie des lettres de la chaine1 qui sont abcd.

Merci de ton aide!!!!!!!!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
shadymetal Messages postés 177 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 2 août 2010 19
6 mars 2010 à 02:52
haa oki j'ai compris
dans se cas il faut utilisé la fonction strchr... cette fonctionne permet de cherché un caractere dans une chaine,
je pense que c'est se qu'il te faut no ? si c'est le cas alors se qu'il fau faire


Valeur=false
i=0
while ((Chaine2[i]!='\0') && (valeur==false))
do {
if (strch(chaine1,Chaine2[i])==NULL) Valeur=true
else i++
}

et la tu devré testé sur Valeur pour savoir si il é sorti de l aboucle parce qu'il é arrivé a la fin de chaine2 ou parcqu'il na pa trouvé une letre
si tu veu plus d'explication pas de probleme
0
shadymetal Messages postés 177 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 2 août 2010 19
6 mars 2010 à 02:56
je me suis gouré c'est strchr pas strch.....
0