Besoin d'aide pour les variables en C
Résolu/Fermé
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
-
21 juil. 2014 à 09:10
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 juil. 2014 à 19:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 juil. 2014 à 19:35
A voir également:
- Besoin d'aide pour les variables en C
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Bonjour problème de boucle . ✓ - Forum Python
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret? ✓ - Forum Python
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 juil. 2014 à 10:44
21 juil. 2014 à 10:44
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 :
Ensuite pour le scanf, le %d est réservé pour les entiers. Pour les chaînes, on utilise %s. Par exemple :
Par ailleurs, je te conseille de plutôt utiliser fgets() pour éviter les mauvaises surprises.
Et pour afficher le résultat :
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,
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,
Bibifoot71
Messages postés
95
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
4 mars 2015
2
21 juil. 2014 à 18:23
21 juil. 2014 à 18:23
Ok merci beaucoup je mets résolue
IntGrapher
Messages postés
9
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
22 juillet 2014
21 juil. 2014 à 19:12
21 juil. 2014 à 19:12
C possible de mettre un caractère dans int ...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
21 juil. 2014 à 19:35
21 juil. 2014 à 19:35
Ouais mais ici on parle de chaîne de caractères pas de caractères...