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 :

Problème de Char dans une structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 17
    Par défaut Problème de Char dans une structure
    Bonjour,

    j'expose mon problème:

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    struct monProfil
    {
        char nom[30];
        int age;
    };
     
    int main()
    {
     struct monProfil anthony;
     
     anthony.nom = "anthony";
     anthony.age = 25;
     
     printf("Prenom: %s\nAge: %d\n",anthony.nom,anthony.age);
     return 0;
    }
    le message d'erreur de mon compilateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ||=== test, Debug ===|
    F:\Mes Projets\test\main.c||In function `main':|
    F:\Mes Projets\test\main.c|14|error: incompatible types in assignment|
    ||=== Génération finie: 1 erreurs, 0 avertissements ===|
    Voila, il y a une erreur avec anthony.nom = "anthony"; , je pense que je n'ai pas du comprendre quelque chose, si je pouvais avoir un peu d'aide, !? je vous remercie d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 17
    Par défaut
    désolé, j'ai fait un sujet en double

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    anthony.nom = "anthony";
    l'affectation tel que tu le fait n'est possible que lors de la declaration.
    Pour pallier a cela, utilise strcpy.



    Bonne continuation.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 17
    Par défaut
    merci SofEvans pour ton aide, si rapide en plus !!

    Ce bout de code est-il bon et propre ?

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    struct monProfil
    {
        char nom[30];
        int age;
    };
     
    int main()
    {
     struct monProfil anthony = {0,0};
     
     char nom[] = "anthony";
     strcpy(anthony.nom, nom);
     
     anthony.age = 25;
     
     printf("Prenom: %s\nAge: %d\n",anthony.nom,anthony.age);
     return 0;
    }
    en tout cas, ça compile, et le résultat est bon

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char nom[] = "anthony";
    strcpy(anthony.nom, nom);
    ou même directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy( anthony.nom , "anthony" );

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 17
    Par défaut
    Merci jeroman ,

    une dernière petite question, j'aimerais savoir pourquoi on doit mettre un strcpy(), dans ce cas la et pas dans d'autre, enfin je veux dire, pourquoi il faut en mettre si le char est dans un structure alors que si je l'aurais mis avant le printf() j'en aurais pas eu besoin ? il y a t-il une raison particulière ?

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

Discussions similaires

  1. problème d'écriture dans une structure
    Par sdecorme dans le forum MATLAB
    Réponses: 11
    Dernier message: 10/10/2013, 14h27
  2. Réponses: 7
    Dernier message: 04/12/2012, 19h02
  3. Réponses: 4
    Dernier message: 22/09/2010, 09h30
  4. Problème de sauvegarde dans une structure
    Par Invité dans le forum Windows Forms
    Réponses: 8
    Dernier message: 18/05/2008, 11h24
  5. Problème de tableau dans une structure
    Par zarbiman dans le forum Réseau
    Réponses: 5
    Dernier message: 15/12/2007, 18h21

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