Assigner un char dans une structure.
Fermé
Utilisateur anonyme
-
13 mai 2019 à 13:00
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 13 mai 2019 à 16:35
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 13 mai 2019 à 16:35
A voir également:
- Assigner un char dans une structure.
- Coco char - Accueil - Réseaux sociaux
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Convertir char en int c - Forum C
- New cpu installed ftpm/psp nv corrupted or ftpm/psp nv structure changed - Forum BIOS
1 réponse
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
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