High-Tech
Santé-Médecine
Droit-Finances
CodeS-SourceS
Inscription
Plan
Connexion
Rechercher un code, un tuto, une réponse
Accueil
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Tous les langages
Delphi / Pascal
Java
Python
SQL
RegEx
Flash
ASM
IRC
Graphisme
PDA
ColdFusion
Foxpro
Flex
Visual Basic / VB.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
PHP
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C/C++/C++.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Javascript
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C#/.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
ASP/ASP.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Accueil
Connexion
Déposer un code
Code
Recherche
Haut
Accueil
Forum Codes-Sources
C / C++ / C++.NET
Probleme strcmp
Signaler
ben3020
Messages postés
4
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
13 juillet 2005
-
21 juin 2005 à 11:21
ben3020
Messages postés
4
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
13 juillet 2005
-
21 juin 2005 à 16:22
Bonjour à tous
Je suis nouveau ds la prog C et j'ai un probleme ave la fonction strcmp :
#include <string.h>
#include <stdio.h>
int main(void) {
int cnp;
char filename[80];
char LOG[]="pass";
printf("\n Enter the password : ");
fgets(filename,sizeof(filename),stdin);
cnp=strcmp(LOG,filename);
if (cnp==0)
{
printf("\nOK\n");
}
else {
printf("\nNO\n");
}
printf("%d\n",cnp);
return 0;
}
Lorsque je mets la valeur pass la reponse est kan meme !0 alors qu'elle devrait etre =0 ???
Merci d'avance pour voter aide
Afficher la suite
A voir également:
Strncmp asm
Strcmp tchar
- Meilleures réponses
Strcmp asm
-
Forum - ASM
Strcmp java
✓
-
Forum - Java
C / C++ / C++.NET : Correction de la fonction strcmp(...) (visual c++) - CodeS SourceS
- Guide
C / C++ / C++.NET : Mise en ordre alphabetique de 2 chaines sans utiliser strcmp et strncmp - CodeS
- Guide
Comparer des stings : strcmp ?
✓
-
Forum - C
8
réponses
Réponse 1 / 8
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
21 juin 2005 à 11:42
salut,
verifie tes fin de chaines, a mon avis, tu en as une qui fini CRLF et l'autre 0.
@++
Réponse 2 / 8
darfeuille
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005
21 juin 2005 à 11:50
c'est normal, filename est un char[80] donc il veut comparer les 80 caractères
Et comme pass n'en fait que 4, il renvoie != puisque
"pass" !=
"pass
"
Réponse 3 / 8
rvkiki
Messages postés
11
Date d'inscription
lundi 20 janvier 2003
Statut
Membre
Dernière intervention
1 juillet 2005
21 juin 2005 à 11:57
salut
vérifie juste les n premiers caractères, qui correspondent à ce qui a été tapé, avec :
strncmp(LOG, filename,strlen(filename));
il ne devrait plus y avoir de problème
Réponse 4 / 8
darfeuille
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005
21 juin 2005 à 12:27
Non, il faut plutôt que tu fasses
strncmp(LOG, filename,strlen(LOG));
La ce sera bon, ca marchera
Réponse 5 / 8
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
21 juin 2005 à 12:30
NENNI, strcmp s'arrête au 1er zéro rencontré comme toute fonction de chaine et se fout de la longueur du buffer.
Donc DOIT fonctionner.
ciao...
BruNews, MVP VC++
Réponse 6 / 8
Zootella
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Statut
Membre
Dernière intervention
5 septembre 2006
21 juin 2005 à 12:49
#include <string.h>
#include <stdio.h>
int main(void) {
int cnp;
char filename[80];
char LOG[]="pass";
printf("\n Enter the password : ");
gets(filename);
cnp=strcmp(LOG,filename);
if (!cnp)
{
printf("\nOK\n");
}
else {
printf("\nNO\n");
}
printf("%d\n",cnp);
return 0;
}
Réponse 7 / 8
cs_magma
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
21 juin 2005 à 14:01
#include <stdio.h>
#include <string.h>
#define BEEP 7
#define RETURN 13
//----------------------------------
void GetPassword(char *psw, int len)
{
int c, i = 0;
while((c = getch()) != RETURN)
{
if(i < len - 1)
{
printf("*");
*(psw + i++) = c;
}
else
printf("%c", BEEP);
}
*(psw + i) = 0;
}
//----------------------------------
int main(void)
{
int cnp;
char filename[8+1];
char LOG[] = "pass";
printf("\nEnter password : ");
GetPassword(filename, sizeof(filename));
if(!(cnp = strcmp(LOG, filename)))
printf("\nOK\n");
else
printf("\nNO\n");
printf("%d %s\n\n", cnp, filename);
system("PAUSE");
return 0;
}
Réponse 8 / 8
ben3020
Messages postés
4
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
13 juillet 2005
21 juin 2005 à 16:22
Merci à Tous.
Ca ma beaucoup aidé et je comprend mieux le problème Merci a Magma pour le cryptage avec les etoiles ca me sera tès utile !
Votre réponse
Répondre
Posez votre question
A voir également
Strcmp qui marche plus ??
Problème avec strcmp
C / C++ / C++.NET - C : "Traduction C -> ASM
[ASM] Allocation de memoire
Comparaison de texte (tableau TCHAR)