Besoin d'aide pour les variables en C
Résolu
Bibifoot71
Messages postés
108
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour !
Alors je me posait la question si on pouvait quand même enregistrer des chaînes de caractère dans une variable car si je fais:
et bien ça me mets la réponse avec les "codes ascii" les chiffres quoi donc si vous avez la réponse merci ^^
Alors je me posait la question si on pouvait quand même enregistrer des chaînes de caractère dans une variable car si je fais:
int name = "rien";
printf("Donne ton nom: ");
scanf("%d", &name);
printf("Bonjour %d" ,name);
et bien ça me mets la réponse avec les "codes ascii" les chiffres quoi donc si vous avez la réponse merci ^^
2 réponses
-
Bonjour,
int name; veut dire que tu déclares un une variable de type entier.
Donc ça n'a aucun sens de mettre une chaîne de caractère.
En C, il n'y a pas de type chaîne de caractère dédié. Il faut passer par un tableau de caractère (ou équivalent).
Par exemple :/*je déclare une chaîne de 14 caractères (le 15ème étant '\0') et j'initialise à Bibifoot*/ char name[15] = "Bibifoot"; /*je déclare une chaîne de 14 caractères (le 15ème étant réservé pour le '\0' sans initialisation (*/ char surname[15];
Ensuite pour le scanf, le %d est réservé pour les entiers. Pour les chaînes, on utilise %s. Par exemple :/*pas de & devant name car name est de type pointeur dans ce contexte*/ scanf("%s", name);
Par ailleurs, je te conseille de plutôt utiliser fgets() pour éviter les mauvaises surprises.
Et pour afficher le résultat :printf("Bonjour %s\n", name);
Je te conseille vivement de lire un tuto car il s'agit de la base : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c (au moins la partie 1).
Cdlt, -