La funzione seguente converte un intero (n) in una stringa (s) e restituisce la stringa stessa; itoa è quindi l'inversa di atoi.
Viene dapprima generata l'immagine speculare della stringa corretta, per poi capovolgerla (con la funzione reverse).

char *itoa(int n, char *s)
{
   int i, sign;

   if ((sign = n) < 0)   /* tiene traccia del segno */
      n = -n;   /* rende n positivo */
   i = 0;
   do {   /* genera le cifre nell'ordine inverso */
      s[i++] = n % 10 + '0';   /* estrae la cifra seguente */
   } while ((n /= 10) > 0);   /* elimina la cifra da n */
   if (sign < 0)
      s[i++] = '-';
   s[i] = '\0';
   reverse(s);

   return s;
}

La funzione seguente, necessaria alla funzione itoa inverte la stringa (s) senza copiarla in una stringa ausiliaria. E' necessario includere il file di intestazione string.h.

void reverse(char *s)
{
   int c, i, j;

   for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
   }
}