Menu

Définir une chaîne dans une structure [Résolu]

Messages postés
59
Date d'inscription
samedi 2 août 2014
Dernière intervention
16 septembre 2018
- 16 sept. 2018 à 00:09 - Dernière réponse :
Messages postés
6885
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 16 sept. 2018 à 13:22
Bonjour, j'ai créer une petite structure qui contient des chaînes de caractères, le probleme c'est que je ne parviens pas à enregistrer ma chaine.

voici mon code:

typedef struct maStruct maStruc;
struct maStruct
{
    char chaine1[100];
    char chaine2[100];
    int entier1;
    int entier2;
};

main(int argc, char *argv[])
{
    maStruct maChaine;

    maChaine.chaine1 = "salut"; // Ne fonction pas
    scanf("%s", maChaine.chaine1); //Fonctionne;
    return 0
}


Dans un premier j'obtiens cette erreur lors de la compilation :error assignement to expression with array type.
Par contre le scanf fonctionne.
Je ne comprend pas pourquoi
maChaine.chaine1 = "salut";
ne fonctionne pas.

Merci.

Afficher la suite 

Votre réponse

4 réponses

Messages postés
59
Date d'inscription
samedi 2 août 2014
Dernière intervention
16 septembre 2018
- 16 sept. 2018 à 08:53
0
Merci
Et bien je pensais que quelqu'un aurais eu une petite idée.
Vraiment personne pour m'aider?
Commenter la réponse de lamouchetsetse
Messages postés
59
Date d'inscription
samedi 2 août 2014
Dernière intervention
16 septembre 2018
- 16 sept. 2018 à 09:55
0
Merci
Bon, je pense avoir compris, en fait il semble qu'il soit obligatoire d'entrer les caractères 1 à 1 des lors que la chaîne est déjà défini
Messages postés
6885
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2018
- 16 sept. 2018 à 13:22
il s'agit, en effet, d'un tableau de caractères: regarde ta déclaration.
Commenter la réponse de lamouchetsetse
Messages postés
364
Date d'inscription
dimanche 7 février 2016
Dernière intervention
17 novembre 2018
- 16 sept. 2018 à 10:03
0
Merci
Bonjour,

Un tableau de caractères n'est pas un type simple, on doit utiliser la fonction
strcpy()
au lieu de
=
pour copier (et la fonction
strcmp()
au lieu de
==
pour comparer.)
Commenter la réponse de Dalfab