Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/03/2007, à 12:33

xcxl

[RESOLU]Comparer un char ?? monchar = 'motdepasse' ??

Bonjour, comme expliqué dans le titre (mais cT un peu cours roll ) je debute en C et jaimerais comparer mon char avec une phrase. Comme cest un peu compliqué je vous montre mon code (qui ne marche pas cool ) :

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

int main()
{
    char mdp[50];
	printf("Bonjour, quel est le mot de passe? ");
	scanf ("%s", mdp);

    if (mdp == 'lemdep')
        {
            printf ("\nPass valide\n");
        }
    else
        {
            printf ("\nPass invalide\n");
        }
	return 0;
}

Voila mais j'aimerai ne pas utiliser string.h pour des raison de taille de lexecutable (pour essayer de le cracker avec windasm apres).

Dernière modification par xcxl (Le 17/03/2007, à 13:11)

Hors ligne

#2 Le 17/03/2007, à 13:01

best_friend_fr

Re : [RESOLU]Comparer un char ?? monchar = 'motdepasse' ??

Salut

Erreur 1:
En C, les strings sont entre " et non '

Erreur 2:
Les strings sont des pointeurs de chars. ton (mdp == 'lemdep') compare les adresses des pointeurs, pas les chaines en elles-memes.

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

int main()
{
    char mdp[50];
    printf("Bonjour, quel est le mot de passe? \n");
    scanf ("%s", mdp);
    if (strcmp(mdp,"lemdep\n"))
        {
            printf ("\nPass valide\n");
        }
    else
        {
            printf ("\nPass invalide\n");
        }
    return 0;
}

N'oublie pas le \n dans le test, car un scanf inclue le return de validation.

Bon courage


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 17/03/2007, à 13:11

xcxl

Re : [RESOLU]Comparer un char ?? monchar = 'motdepasse' ??

Eh bien merci bcp sa marche impec.

Hors ligne

#4 Le 17/03/2007, à 13:19

qqun

Re : [RESOLU]Comparer un char ?? monchar = 'motdepasse' ??

n'oublie pas le \n dans le test, car un scanf inclue le return de validation.

pour le \n je ne crois pas smile  , tu peux l'enlever

sinon pour le strcmp , il renvois 0 si les chaines sont identiques donc me parait plus juste smile

if (strcmp(mdp,"lemdep\n") == 0) printf ("\nPass valide\n");

#5 Le 17/03/2007, à 14:04

best_friend_fr

Re : [RESOLU]Comparer un char ?? monchar = 'motdepasse' ??

Euh oui, tes remarques semblent judicieuses...

J'ai pas vérifié, désolé


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne