Assigner un char dans une structure.
Fermé
Jockill
Messages postés
102
Date d'inscription
jeudi 17 juillet 2014
Statut
Membre
Dernière intervention
13 mai 2019
-
13 mai 2019 à 13:00
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 13 mai 2019 à 16:35
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 13 mai 2019 à 16:35
A voir également:
- Assigner un char dans une structure.
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Char ai - Guide
- Structure d'un rapport de stage - Guide
- Error pdf structure 40 - Forum PDF
- Assigner une carte graphique à un écran - Forum Carte graphique
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 13 mai 2019 à 17:06
Modifié le 13 mai 2019 à 17:06
Salut Jockill,
En C, un
Une chaîne en C est une suite se
L'erreur que tu as se manifeste car tu mets en paramètre de
Vu qu'un
Au final, voilà un exemple (affectation des initiales en ligne 18) :
donne :
65 correspond au code ASCII de la lettre 'A' : http://www.asciitable.com/
Dal
En C, un
charest un type entier.
Une chaîne en C est une suite se
charconsécutifs en mémoire terminée par le caractère NULL
'\0', que l'on manipule avec un pointeur sur char ...
L'erreur que tu as se manifeste car tu mets en paramètre de
strcpy()un type
char, au lieu d'un type
char *.
Vu qu'un
charest un type entier, pour affecter le contenu d'une variable de type
charà une autre variable du même type, tu utilises simplement l'opérateur d'affectation
=.
Au final, voilà un exemple (affectation des initiales en ligne 18) :
#include <stdio.h> struct Contact{ char nom[50]; char init; }; int main(void) { /* un tableau de struct Contact avec des noms */ struct Contact tab[3] = { { .nom = "Albert" }, { .nom = "Bernard" }, { .nom = "Charles" } }; /* peupler les initiales */ for (int n = 0; n < 3; n++) { tab[n].init = tab[n].nom[0]; } /* lister les initiales */ for (int n = 0; n < 3; n++) { printf("L'initiale de %s est '%c' et sa valeur numérique est %d\n", tab[n].nom, tab[n].init, tab[n].init); } return 0; }
donne :
$ gcc -Wall 36021613.c
$ ./a.out
L'initiale de Albert est 'A' et sa valeur numérique est 65
L'initiale de Bernard est 'B' et sa valeur numérique est 66
L'initiale de Charles est 'C' et sa valeur numérique est 67
$
65 correspond au code ASCII de la lettre 'A' : http://www.asciitable.com/
Dal