EDIT: Sorry, ich hätte daran denken sollen, dass diese Maschine entschieden nicht dem Standard entspricht, da verschiedene nicht standardmäßige libc
Implementierungen für akademische Zwecke angeschlossen wurden ;-)
Wie itoa()
in der Tat nicht standardmäßig, wie von mehreren hilfreichen Kommentatoren erwähnt, ist es am besten, sprintf(target_string,"%d",source_int)
oder zu verwenden (noch besser, weil es vor Pufferüberläufen sicher ist) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
. Ich weiß, dass es nicht ganz so prägnant oder cool ist wie itoa()
, aber zumindest kannst du einmal schreiben, überall laufen (tm) ;-)
Hier ist die alte (bearbeitete) Antwort
Sie geben zu Recht an, dass die Standardeinstellung gcc libc
nicht itoa()
wie bei mehreren anderen Plattformen enthalten ist, da sie technisch nicht Teil des Standards ist. Sehen Sie hier für ein wenig mehr Informationen. Beachten Sie, dass Sie müssen
#include <stdlib.h>
Natürlich wissen Sie bereits , dies, weil man wollte verwenden itoa()
unter Linux nach vermutlich mit ihm auf einer anderen Plattform, aber ... der Code (gestohlen aus dem Link oben) würde wie folgt aussehen:
Beispiel
/* 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;
}
Ausgabe:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
Hoffe das hilft!
sprintf(str, "%d", num)
? ist es viel langsamer alsitoa
?