EDIT: Mi dispiace, avrei dovuto ricordare che questa macchina è decisamente non standard, avendo collegato vari non standard libc implementazioni per scopi accademici ;-)
Dato che in itoa()effetti non è standard, come indicato da numerosi utili commentatori, è meglio utilizzarlo sprintf(target_string,"%d",source_int)o (meglio ancora, perché è al sicuro da buffer overflow) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int). So che non è così conciso o bello come itoa(), ma almeno puoi scrivere una volta, corri ovunque (tm) ;-)
Ecco la vecchia risposta (modificata)
Hai ragione nel dichiarare che il default gcc libcnon include itoa(), come molte altre piattaforme, perché tecnicamente non fa parte dello standard. Vedi qui per qualche informazione in più. Nota che devi
#include <stdlib.h>
Ovviamente lo sai già, perché volevi usare itoa() su Linux dopo aver presumibilmente usato su un'altra piattaforma, ma ... il codice (rubato dal link sopra) sarebbe simile a:
Esempio
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
Produzione:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
Spero che questo ti aiuti!
sprintf(str, "%d", num)? è molto più lento diitoa?