char* itoa(int input, char *buffer, int base)

Funkcja jako argument pobiera liczbę typu int (input), którą skonwertuje na podstawie bazy liczbowej do łańcucha znakowego przekazanego przez wskaźnik (buffer). Funkcja zwraca wskaźnik z tym samym adresem, który przypisała drugiemu argumentowi. Przykładowe bazy liczbowe:

   * 2 - dwójkowy system liczbowy
   * 8 - ósemkowy system liczbowy
   * 16 - szesnastkowy system liczbowy

Przykłady

edytuj

Pierwszy

edytuj
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
   int liczba;
   char bufor[16];
   printf("Podaj liczbe: "); //Podajemy liczbe do przekonwertowania.
   scanf("%d", &liczba);
   printf("W systemie binarnym: %s\n", itoa(liczba,bufor,2)); //itoa konwertuje liczbe z dec na bin i zapisuje w bufor.
   return 0;
}

Kompilacja :

Nie można skompilować tego programu pod gcc :

gcc i.c -Wall
i.c: In function ‘main’:
i.c:15:3: warning: implicit declaration of function ‘itoa’ [-Wimplicit-function-declaration]
   itoa (i,buffer,10);
   ^
/tmp/cc1xPzhs.o: In function `main':
i.c:(.text+0x54): undefined reference to `itoa'
i.c:(.text+0x85): undefined reference to `itoa'
i.c:(.text+0xb6): undefined reference to `itoa'
collect2: error: ld returned 1 exit status
/* 
 itoa example 
 http://www.cplusplus.com/reference/cstdlib/itoa/
*/
#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;
}

Źródła

edytuj
  1. itoa with GCC by Stuart
  2. itoa with GCC