EDYCJA: Przepraszam, powinienem był pamiętać, że ta maszyna jest zdecydowanie niestandardowa, po podłączeniu różnych niestandardowych libcimplementacji do celów naukowych ;-)
Ponieważ itoa()jest to rzeczywiście niestandardowe, o czym wspomniało kilku pomocnych komentatorów, najlepiej jest użyć sprintf(target_string,"%d",source_int)lub (jeszcze lepiej, ponieważ jest bezpieczny przed przepełnieniem bufora) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int). Wiem, że to nie jest tak zwięzłe ani fajne, jak itoa(), ale przynajmniej możesz napisać raz, biegać wszędzie (tm) ;-)
Oto stara (zredagowana) odpowiedź
Masz rację twierdząc, że domyślna gcc libcwersja nie obejmuje itoa(), jak kilka innych platform, ponieważ technicznie nie jest częścią standardu. Zobacz tutaj, aby uzyskać więcej informacji. Pamiętaj, że musisz
#include <stdlib.h>
Oczywiście już to wiesz, ponieważ chciałeś używać itoa() na Linuksie po przypuszczalnym użyciu go na innej platformie, ale ... kod (skradziony z powyższego linku) wyglądałby tak:
Przykład
/* 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;
}
Wynik:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
Mam nadzieję że to pomoże!
sprintf(str, "%d", num)? czy jest dużo wolniejszy niżitoa?