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 :

Je ne comprend pas le résultat de ce code


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 11
    Par défaut Je ne comprend pas le résultat de ce code
    Bonjour,
    Voici ce que contient ma fonction main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char buf[1024] = "put 394c8a052d ::1";
      char get_or_put[3];
      int j;
      for (j = 0; j < 3; j++) get_or_put[j] = buf[j];
      printf("%s\n", get_or_put);
    Et j'obiens comme résultat : "puput 394c8a052d ::1", je ne comprend vraiment pas pourquoi j'ai ce résultat.

    Bonne journée et merci d'avance.

  2. #2
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Comment pourrait-on déterminer la fin de la chaîne que tu cherches à afficher ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 11
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Comment pourrait-on déterminer la fin de la chaîne que tu cherches à afficher ?
    J'essaye simplement de copier les trois premiers caractères de buf dans get_or_put. L'affichage est censé me donner 'put'

  4. #4
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Alors je reformule ma question initiale : comment printf pourrait-il déterminer que la chaîne que tu lui présentes contient trois octets, et pas deux ou six ?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2017
    Messages : 11
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Alors je reformule ma question initiale : comment printf pourrait-il déterminer que la chaîne que tu lui présentes contient trois octets, et pas deux ou six ?
    D'accord, étant donné que sa taille est de trois je pense qu'il doit en afficher trois non ?

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Comment détermine-t-il que la taille est trois?
    Sachant qu'un argument de fonction n'est jamais un tableau, mais un pointeur.

    Qu'est-ce qu'une chaine de caractère en C?

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Fahya Voir le message
    D'accord, étant donné que sa taille est de trois je pense qu'il doit en afficher trois non ?
    Bonjour

    Ben non. Le C n'est pas assez évolué pour faire ce rapprochement. D'ailleurs ce serait assez malheureux qui'il bosse de cette façon parce qu'alors l'affichage de "buf" afficherait 1024 caractères (tu aurais pu t'en rendre compte tout seul !!!)
    Pour afficher une chaine, il part du début de la chaine et boucle jusqu'à ce qu'il trouve la "fin de la chaine". A toi de reprendre ton cours sur "ce qu'est une chaine de caractères en C" (cf post de ternel) pour comprendre comment il trouve cette "fin de chaine"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Explain : je ne comprends pas le résultat
    Par Zachatim dans le forum Requêtes
    Réponses: 4
    Dernier message: 06/01/2016, 01h42
  2. Je ne comprend pas le résultat du programme
    Par sk8trasher dans le forum Débuter
    Réponses: 2
    Dernier message: 22/10/2012, 16h39
  3. Alors là j'comprends pas le résultat de cette requête.
    Par mouche dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/02/2008, 10h14
  4. Réponses: 2
    Dernier message: 12/01/2007, 01h27
  5. Réponses: 22
    Dernier message: 16/08/2006, 13h11

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