Définir une chaîne dans une structure

Résolu/Fermé
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 - 16 sept. 2018 à 00:09
yg_be Messages postés 22699 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 - 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.

3 réponses

lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
16 sept. 2018 à 08:53
Et bien je pensais que quelqu'un aurais eu une petite idée.
Vraiment personne pour m'aider?
0
lamouchetsetse Messages postés 112 Date d'inscription samedi 2 août 2014 Statut Membre Dernière intervention 21 septembre 2021 2
16 sept. 2018 à 09:55
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
0
yg_be Messages postés 22699 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
16 sept. 2018 à 13:22
il s'agit, en effet, d'un tableau de caractères: regarde ta déclaration.
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
16 sept. 2018 à 10:03
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.)
0