[C] convertir un char en int et vice versa?
Fermé
boitaRytm
Messages postés
14
Date d'inscription
dimanche 7 janvier 2007
Statut
Membre
Dernière intervention
22 octobre 2008
-
7 janv. 2007 à 11:58
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 27 déc. 2014 à 21:34
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 27 déc. 2014 à 21:34
bonjour tout le monde
je debute en C et j'aimerais savoir s'il ya pas une fonction qui permet de convertir un caractère en un entier et inversement, un peu du mem genre que "atoi"
si oui merci de me donner la syntaxe bien expliquée avec :)
merci d'avance
(une reponse d'ici ce soir ca serait genial)
je debute en C et j'aimerais savoir s'il ya pas une fonction qui permet de convertir un caractère en un entier et inversement, un peu du mem genre que "atoi"
si oui merci de me donner la syntaxe bien expliquée avec :)
merci d'avance
(une reponse d'ici ce soir ca serait genial)
A voir également:
- Convertir char en int c
- Convertir un char en int en c - Meilleures réponses
- Convertir char en int - Meilleures réponses
- Convertir trimestre en année - Forum Excel
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir youtube en mp3 forum ✓ - Forum Logiciels
- Convertir epub en kindle - Guide
7 réponses
Sais-tu qu'il n'y a pas de typage fort en C ?
Cela veut dire que tu peux te servir d'une variable de type char comme si c'était un int :
c'est à dire que tu peux utiliser les opérateurs de comparaisons, arithmétique, logique.
Si par contre, tu as besoin de mixer operandes de type int avec d'autres de type int, convertit-les dans le type du résultat attendu.
Exemple:
{
int i;
resultat;
char c1,c2;
i=2;
c1=100;
c2=100;
resultat=(int) c1*(int) c2+i;
}
En effet, si la conversion n'est pas réalisée avant d'effectuer la *, le résultat intermédiaire est stocké dans une variable temporaire de type char et dans notre cas, ne suffit pas à stocker le résultat dans son intégralité (il faut 2 octets. Le type char tient sur 1 !!)
Le résultat intermédiaire est tronqué et la variable intermédiaire ne stocke que les bits les moins significatifs.
Le résultat final sera faux.
Bien sûr, le langage C ne le signale pas par défaut. Peut-être qu'une option de compilateur peut permettre de le signaler ou l'outil lint.
Je te conseille à ce propos d'utiliser lint, qui t'aidera à débugger tes programmes. C'est très formateur et t'évitera peut-être de t'user les yeux devant l'écran et les bouquins.
D'autres langages comme Ada, réalise une vérification systèmatique de la concordance des types dans les expressions et les affectations, à la compilation et controle les débordements à l'exécution.
Ceux qui ont développé en Ada, ont tous connu, l'exception Ada : Constraint error.
Donc, voilà, pour répondre à ta question :
pour convertir, un char en entier : (int) <operande char>.
De facon générale : (type) <operande>.
où type peut être : int, char, long, unsigned, ... et toute combinaison.
où operande peut être : constante, variable, expression.
Voilà, voilà, a+.
P.S: Amuse-toi bien.
Tu apprends le C pour faire quoi, si c'est indiscret ?
Cela veut dire que tu peux te servir d'une variable de type char comme si c'était un int :
c'est à dire que tu peux utiliser les opérateurs de comparaisons, arithmétique, logique.
Si par contre, tu as besoin de mixer operandes de type int avec d'autres de type int, convertit-les dans le type du résultat attendu.
Exemple:
{
int i;
resultat;
char c1,c2;
i=2;
c1=100;
c2=100;
resultat=(int) c1*(int) c2+i;
}
En effet, si la conversion n'est pas réalisée avant d'effectuer la *, le résultat intermédiaire est stocké dans une variable temporaire de type char et dans notre cas, ne suffit pas à stocker le résultat dans son intégralité (il faut 2 octets. Le type char tient sur 1 !!)
Le résultat intermédiaire est tronqué et la variable intermédiaire ne stocke que les bits les moins significatifs.
Le résultat final sera faux.
Bien sûr, le langage C ne le signale pas par défaut. Peut-être qu'une option de compilateur peut permettre de le signaler ou l'outil lint.
Je te conseille à ce propos d'utiliser lint, qui t'aidera à débugger tes programmes. C'est très formateur et t'évitera peut-être de t'user les yeux devant l'écran et les bouquins.
D'autres langages comme Ada, réalise une vérification systèmatique de la concordance des types dans les expressions et les affectations, à la compilation et controle les débordements à l'exécution.
Ceux qui ont développé en Ada, ont tous connu, l'exception Ada : Constraint error.
Donc, voilà, pour répondre à ta question :
pour convertir, un char en entier : (int) <operande char>.
De facon générale : (type) <operande>.
où type peut être : int, char, long, unsigned, ... et toute combinaison.
où operande peut être : constante, variable, expression.
Voilà, voilà, a+.
P.S: Amuse-toi bien.
Tu apprends le C pour faire quoi, si c'est indiscret ?
7 janv. 2007 à 13:16
Sinon, ça pourrait pas compiler.
sinon, une fois déclarée, laisser la ligne 3 telle quelle, n'a aucun effet sinon de forcer le compilateur à signaler que cette instruction n'a pas d'effet.