EDIT: Maaf, saya seharusnya ingat bahwa mesin ini jelas-jelas tidak standar, telah terpasang di berbagai libc
implementasi non-standar untuk keperluan akademik ;-)
Karena itoa()
memang tidak standar, seperti yang disebutkan oleh beberapa komentator yang membantu, yang terbaik adalah menggunakan sprintf(target_string,"%d",source_int)
atau (lebih baik lagi, karena aman dari buffer overflows) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
. Saya tahu itu tidak begitu ringkas atau sejukitoa()
, tetapi setidaknya Anda dapat Menulis Sekali, Jalankan Di Mana Saja (tm) ;-)
Inilah jawaban lama (yang diedit)
Anda benar dalam menyatakan bahwa default gcc libc
tidak termasuk itoa()
, seperti beberapa platform lain, karena itu secara teknis tidak menjadi bagian dari standar. Lihat di sini untuk info lebih lanjut. Perhatikan bahwa Anda harus melakukannya
#include <stdlib.h>
Tentu saja Anda sudah tahu ini, karena Anda ingin menggunakannya itoa()
di Linux setelah mungkin menggunakannya di platform lain, tapi ... kodenya (dicuri dari tautan di atas) akan terlihat seperti:
Contoh
/* 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;
}
Keluaran:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
Semoga ini membantu!
sprintf(str, "%d", num)
? Apakah ini jauh lebih lambatitoa
?