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 :

Traduction chaine de caractères


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Traduction chaine de caractères
    bonjour à tous,

    je suis actuellement en train de réalisé un projet qui consiste a traduire une chaine de caractère passée en parametre avec donc 2 alphabets différents . Nous avons donc au total 3 arguments. je vous met le code si dessous :


    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
    35
    int     translator(char *argv1, char *argv2, char *argv3)
    {
      int   i;
      int   b;
     
      b = 0;
      while (argv1[i] != '\0')
        {
          while (argv2[i] != '\0')
            {
              if (argv2[b] == argv3[b])
                {
                  my_putchar(argv2[i]);
                }
              else if (argv2[b] != argv3[b])
                {
                  my_putchar(argv3[i]);
                }
              i = i + 1;
    	}
          b = b + 1;
          i = 0;
        }
      return (i);
    }
     
    int     main(int argc, char **argv)
    {
      int   i;
     
      i = 0;
      translator(argv[1], argv[2], argv[3]);
      my_putstr(argv[1]);
      my_putchar('\n');
    }
    e n'arrive pas a trouvé soit ce qu'il me manque pour que mon programme puisse marché (car mon programme compile), soit ou est l'erreur dans mon programme .
    Si j'ai oublié des infos, dites le moi !
    Merci d'avance à tous ce qui pourront m'aidé.

    cordialement,

    nono

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Déjà, que sont supposés représenter chaque argument?
    Et pourquoi ne sont-ils pas déclarés const, alors que la fonction n'est pas censée les modifier?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    i est non initialisé
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Déjà, que sont supposés représenter chaque argument?
    Et pourquoi ne sont-ils pas déclarés const, alors que la fonction n'est pas censée les modifier?
    agrv1 représente la chaine a traduire.
    argv2 représente l'alphabet 1.
    argv3 rreprésente l'alphabet 2.

    je n'est pas encore vu bien les const ( je suis débutant), ont m'a dit que ce n'étais pas nécessaire/ obligatoire pour ce programmme .

    nono

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par diogene Voir le message
    i est non initialisé

    si i est initialisé.
    i = 0;

    Regarde bien a la fin de la fonction translator :')

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hia,
    Citation Envoyé par nono20013 Voir le message
    si i est initialisé.
    i = 0;

    Regarde bien a la fin de la fonction translator :')
    Ce n'est pas à la fin qu'il faut l'initialiser, mais avant de l'utiliser, ce que tu n'as pas fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int     translator(char *argv1, char *argv2, char *argv3)
    {
      int   i;
      int   b;
     
      b = 0;
      while (argv1[i] != '\0')
        {
          while (argv2[i] != '\0')
    ...
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    C'est vrai, j'ai pas fais attention merci :')

  8. #8
    Membre actif

    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 87
    Points : 217
    Points
    217
    Par défaut
    Bonjour,

    Peut être pas "ce qui manque", mais juste des questions que je me suis posées, en comments, en regardant ton code.

    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
    int     translator(char *argv1, char *argv2, char *argv3)
    {
      int   i;
      int   b;
     
      b = 0;
      //Est ce que tu n'as vraiment besoin que du test du premier element car le i ici est tjrs 0?
      while (argv1[i] != '\0')//i=0
        {
          while (argv2[i] != '\0')
            {
              if (argv2[b] == argv3[b])
                {
                  my_putchar(argv2[i]);
                }
      // est ce que la discontinuité du if .. else if .. else ne pose pas de risque?
              else if (argv2[b] != argv3[b])
                {
                  my_putchar(argv3[i]);
                }
              i = i + 1;
    	}
          b = b + 1;
          i = 0;
        }
      return (i);
    }

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. Traduction de chaines de caractère
    Par soft0613 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 13/02/2008, 21h47
  3. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  4. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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