Wie konvertiert man Integer in String in C?

Ich habe dieses Beispiel versucht:

/* itoa example */ #include  #include  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; } 

aber das Beispiel dort funktioniert nicht (es besagt, dass die function itoa nicht existiert).

Verwenden Sie sprintf() :

 int someInt = 368; char str[12]; sprintf(str, "%d", someInt); 

Alle Zahlen, die durch int werden können, passen in ein 12-char-Array ohne Überlauf, es sei denn, Ihr Compiler verwendet mehr als 32 Bits für int . Wenn Sie Zahlen mit größerer Bitgröße verwenden, z. B. mit den meisten 64-Bit-Compilern lang, müssen Sie die Array-Größe erhöhen – mindestens 21 Zeichen für 64-Bit-Typen.

itoa Sie Ihre eigenen itoa ist auch einfach, versuchen Sie itoa :

 char* itoa(int i, char b[]){ char const digit[] = "0123456789"; char* p = b; if(i<0){ *p++ = '-'; i *= -1; } int shifter = i; do{ //Move to where representation ends ++p; shifter = shifter/10; }while(shifter); *p = '\0'; do{ //Move back, inserting digits as u go *--p = digit[i%10]; i = i/10; }while(i); return b; } 

oder verwenden Sie die Standardfunktion sprintf() .

Das liegt daran, dass itoa keine Standardfunktion ist. Versuchen snprintf stattdessen snprintf .

 char str[LEN]; snprintf(str, LEN, "%d", 42);