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 ?