Strcmp

Résolu/Fermé
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 3 mai 2007 à 20:17
 Doctor C. - 5 déc. 2007 à 17:41
bonjour,
je travail sur dev c++ en langage c, je me suit rendu compte que ce compilateur ne connait pas strcmp, même avec #include<stdio.h> et #include<string.h>.
que doit-je faire? y a t'il une méthode pour remplacer strcmp?
PS: le compilateur me donne 0 erreur mais m'averti que strcmp est un indicateur incompatible.
merci d'avance

6 réponses

Stupeflip Messages postés 391 Date d'inscription jeudi 8 février 2007 Statut Membre Dernière intervention 4 décembre 2007 94
4 mai 2007 à 09:57
Salut,

Avec std::string, tu peux utiliser == au lieu de strcmp :)

EDIT : Ah mince je viens de voir que c'était en C que tu voulais.. C'est bien <string.h> normalement bizarre.. Essaye de mettre <stdlib.h> et <conio.h> on sait jamais

Tiens moi au courant, bon courage
0
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 2
5 mai 2007 à 10:37
Bonjour et merci pour ta reponse, mais j'ai essayé et ça ne fonctionne pas, surement que les bibliothéques de mon compilateur ne sont pas compléte.(j'ai le même probléme avec visual studio 2005)
Y aurait-il quelque chose pour remplacer strcmp dans ma ligne de code.
Encore merci
0
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 2
5 mai 2007 à 10:41
toutes mes excuses, voici ma ligne de code:
if (strcmp(&fiche.nom,&nom)==0)
il s'agit d'un programme pour créé un repertoire téléphonique.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 mai 2007 à 15:47
Assures toi du type de &fiche.nom et de &nom.
Déjà ça me semble louche que tu mettes le signe &, je ne vois pas en quoi tu as besoin de remonter l'adresse d'une variable pour avoir une chaine de caractère.
Une variable ne peut pas devenir un pointeur vers une chaine de caractère en allant chercher son adresse.

Ensuite s'agit t'il bien de chaine de caractère au sens char *, ou bien std::string?
Si c'est std::string, il ne faut pas utiliser strcmp mais l'opérateur ==
0

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

Posez votre question
Utilisateur anonyme
22 mai 2007 à 21:11
bonsoir tlm. Moi aussi je travaille sur dev c++ et j'ai eu aussi qqes souci avec la fonction strcmp mais j'ai réussit a la faire fonctionner. je laisse le code si ca peut aider.

long1 = strlen(CHAINECONST) ;
long2 = strlen(&chaine) ;
printf("%s\n", CHAINECONST) ;

if(long1 == long2 )
{
if(strcmp(&chaine, CHAINECONST) == 0)
{
puts("Les deux mots sont identiques.") ;
}
else
{
puts("Les deux mots ont le meme nombre de caracteres mais ils sont differents.") ;
}
}
else
{
puts("Les deux mots n'ont pas le meme nombre de caracteres.") ;
}

Je l'ai verifié et testée elle marche correctement.
0
optimus prime
5 déc. 2007 à 17:34
je suis une debutante en programmation ,j'aimerai savoir la signification de ce code ki me donne mal a la tet:

printf("Entrez le code d'acces : ");
scanf("%s", &motDePasse);

if(strcmp(motDePasse, "**************") == 0) // j'ai remplacé le mdp par **************
{
goto ok;
}
else
{
printf("Erreur : Mauvais mot de passe.\n\n");
goto stop;

merci de m'aider
0
ton code demande simplement d'entrer un mot de passe (code d'accès)

la fonction strcmp compare deux chaines de caractères

elle retourne
- -1 si la première chaine est plus petite que la deuxième (alphabétiquement)
- 0 si les chaines sont identiques
- 1 si la première chaines est plus grande que la deuxième

donc si le mot de passe est le bon ( == 0 ), elle entre dans le if...
0