IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Souci sur une fonction :)


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut Souci sur une fonction :)
    Et voilà je perds ma virginité de se forum en faisant mon premier post :p

    J'ai un petit soucis avec ma fonction qui me sert pour un pendu qui devrais me camoufler une chaine de caractère avec en entrée deux chaines de caractères
    je m'attends a ce qu'elle me retourne par exemple en motSecret "bonjour" comme entrée

    "*******"
    au lieu de cela elle me renvoi
    "*"


    la voici la voila la coquine: je vous préviens indulgence je commence tout juste =) c'est d'ailleurs pour un tp d'un tutoriel C

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    char* camouflageMot(char* motSecret,int longueurMot,char* lettresEssayees,int nombresEssais)
    {
        int* motCamoufle = NULL;
        motCamoufle = malloc(longueurMot * sizeof(int));
        if (motCamoufle == NULL)
        {
            exit(0);
        }
     
        int i=0;
        for(i=0;i<longueurMot;i++)
        {
            int j=0;
            for(j=0;j<nombresEssais;j++)
            {
                if(motSecret[i]==lettresEssayees[j])
                {
                    motCamoufle[i]=motSecret[i];
                }
                else
                {
                    if (motCamoufle[i]==motSecret[i]){}
                    else {motCamoufle[i]='*';}
     
                }
     
            }
     
     
     
        }
     
            return motCamoufle;
    }

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 379
    Points
    5 379
    Par défaut
    si tu remplaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        int* motCamoufle = NULL;
        motCamoufle = malloc(longueurMot * sizeof(int));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        char* motCamoufle = NULL;
        motCamoufle = malloc(longueurMot * sizeof(char));
    Je crois ce que ca aller bcp mieux.

    Pourquoi stocker une chaine de caractère dans un int * ?

    Attention aux pointeurs !!! C'est le piège des débutants.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Points : 79
    Points
    79
    Par défaut
    Bonjour Lomithrani,

    Moi aussi, je vais "perdre ma virginité" parce que pour la première fois je vais aider quelqu'un sur ce forum (en général c'est moi qui pose des questions )


    Pour commencer, quelques points de corrections (sans importance ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int* motCamoufle = NULL;
        motCamoufle = malloc(longueurMot * sizeof(int));
    C'est plus un char* que tu utilises non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char* motCamoufle = NULL;
        motCamoufle = malloc(longueurMot * sizeof(char));
    et pour tes variables de boucles, il n'est pas nécessaire de les initialiser avant ta boucle. C'est ta boucle "for" qui va leur attribuer des valeurs...


    Passons à la partie plus intéressante maintenant

    Pourquoi ne fais tu pas appel avant tes deux boucles à la fonction "memset" dans le bibliothèque "string.h" pour intialiser motCamoufle à la chaine "*******"
    utilisation : (apres ton malloc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    memset(motCamoufle, (int) '*', longueurMot);
    Et pour remplacer les lettres de ce mot camouflé au fur et à mesure que l'utilisateur essaie de nouvelles lettres, je te conseille de faire plutôt une fonction qui prend en entrée cette lettre et la remplace dans "motCamoufle" si elle est à la même position que dans le mot initial.
    Tu comprendras très vite l'intérêt de séparer tes fonctions en fonctions plus petites et plus faciles à lire...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 60
    Points : 79
    Points
    79
    Par défaut

    Je viens de voir que je me suis fais doubler par fregolo52 pour l'histoire des pointeurs !!!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    rolf ce que je peux être stupide merci les gars ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Soucis sur une fonction
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2006, 18h23
  2. Probleme sur une fonction vérif
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/10/2004, 13h25
  3. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 20h26
  4. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  5. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 20h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo