Avant de continuer, je dois vous avertir que itoa
n'est PAS une fonction ANSI - ce n'est pas une fonction C standard. Vous devriez utiliser sprintf
pour convertir un int
en chaîne de caractères.
itoa
prend trois arguments.
- Le premier est l'entier à convertir.
- Le deuxième est un pointeur vers un tableau de caractères - c'est là que la chaîne sera stockée. Le programme peut planter si vous passez une variable
char *
, donc vous devriez passer un tableau de caractères de taille normale et cela fonctionnera bien.
- Le dernier n'est PAS la taille du tableau, mais c'est la BASE de votre nombre - la base 10 est celle que vous êtes le plus susceptible d'utiliser.
La fonction renvoie un pointeur vers son deuxième argument - où elle a stocké la chaîne convertie.
itoa
est une fonction très utile, qui est prise en charge par certains compilateurs - c'est dommage qu'elle ne soit pas prise en charge par tous, contrairement à atoi
.
Si vous voulez toujours utiliser itoa
, voici comment vous devriez l'utiliser. Sinon, vous avez une autre option en utilisant sprintf
(tant que vous voulez une sortie en base 8, 10 ou 16) :
char str[5];
printf("15 en binaire est %s\n", itoa(15, str, 2));