РЕДАКТИРОВАТЬ: Извините, я должен был помнить, что эта машина явно нестандартна, поскольку в нее были включены различные нестандартные libcреализации для академических целей ;-)
Поскольку itoa()это действительно нестандартно, как упоминалось несколькими полезными комментаторами, лучше всего использовать sprintf(target_string,"%d",source_int)или (еще лучше, потому что это безопасно от переполнения буфера) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int). Я знаю, что это не так лаконично или круто itoa(), но по крайней мере вы можете написать один раз, запустить везде (tm) ;-)
Вот старый (отредактированный) ответ
Вы правы, утверждая, что стандарт по умолчанию gcc libcне включает itoa(), как некоторые другие платформы, потому что технически он не является частью стандарта. См. Здесь для получения дополнительной информации. Обратите внимание, что вам нужно
#include <stdlib.h>
Конечно, вы уже знаете это, потому что хотели использовать itoa() Linux после того, как предположительно использовали его на другой платформе, но ... код (украденный по ссылке выше) будет выглядеть так:
пример
#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;
}
Выход:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
Надеюсь это поможет!
sprintf(str, "%d", num)? это намного медленнее, чемitoa?