La bibliothèque <stdlib> contient des déclarations de fonctions pour la conversion de nombres en chaînes de caractères et vice-versa.
Chaîne --> Nombre
Les trois fonctions définies ci-dessous correspondent au standard ANSI-C et sont portables. Le symbole <s> peut être remplacé par :
Conversion de chaînes de caractères en nombres
atoi(<s>)
|
retourne
la valeur numérique représentée par <s> comme
int
| |
atol(<s>)
|
retourne
la valeur numérique représentée par <s> comme
long
| |
atof(<s>)
|
retourne
la valeur numérique représentée par <s> comme
double (!)
|
Règles générales pour la conversion:
Soient les instructions:
char STR[200]; puts("Entrez un nombre :"); gets(STR); printf("Entrée = %s \n", STR); printf("integer = %d \n", atoi(STR)); printf("long = %ld \n", atol(STR)); printf("double = %f \n", atof(STR));Quelles sont les valeurs affichées si on entre les chaînes de caractères suivantes:
a) 123 b) -123 c) - 123 d) 123.45 e) 12E3 f) 1234f5 g) -1234567 h) 123e-02 i) -0,1234
Nombre --> Chaîne
Le standard ANSI-C ne contient pas de fonctions pour convertir des nombres en chaînes de caractères. Si on se limite aux systèmes fonctionnant sous DOS, on peut quand même utiliser les fonctions itoa, ltoa et ultoa qui convertissent des entiers en chaînes de caractères.
Conversion de nombres en chaînes de caractères
itoa (<n_int>, <s>, <b>)
ltoa (<n_long>, <s>, <b>)
ultoa (<n_uns_long>, <s>, <b>)
Chacune de ces trois procédures convertit son premier argument en une chaîne de caractères qui sera ensuite attribuée à <s>. La conversion se fait dans la base <b>.
<n_int>
|
est
un nombre du type int
| |
<n_long>
|
est
un nombre du type long
| |
<n_uns_long>
|
est
un nombre du type unsigned long
| |
<s>
|
est
une chaîne de caractères
| |
longueur
maximale de la chaîne: 17 resp. 33 byte
| ||
<b>
|
est
la base pour la conversion (2 ... 36)
|
En ANSI-C il existe la possibilité d'employer la fonction sprintf pour copier des données formatées dans une variable de la même façon que printf les imprime à l'écran.
Syntaxe:
sprintf( <chaîne cible>, <chaîne de formatage>, <expr1>, <expr2>, . . . )
Ecrivez un petit programme utilisant la fonction ltoa qui sert à contrôler les résultats de l'exercice 3.3.