So verwenden Sie die Itoa-Funktion in C

So Verwenden Sie Die Itoa Funktion In C



Die Programmiersprache C wurde vor über fünf Jahrzehnten eingeführt. Seitdem erfreut es sich in der Programmierwelt großer Beliebtheit. Es übertrifft die anderen Sprachen aufgrund seiner Merkmale, einschließlich struktureller Einfachheit, Funktionen, Portabilität, effizienter Speicherverwaltung usw. Trotz zahlreicher anderer Merkmale sind Funktionen in C die wichtigsten Vorteile, die vielen Benutzern beim Schreiben robuster Codefragmente helfen.

Darüber hinaus ist itoa eine weit verbreitete, nicht standardmäßige Funktion, die als Datentypkonverter fungiert. Es nimmt den Datentyp int als Eingabe und wandelt ihn in einen String um. Viele von Ihnen kennen die Verwendung jedoch nicht. Daher erklärt dieser Leitfaden kurz und bündig, wie Sie die itoa-Funktion in C problemlos verwenden können.







So verwenden Sie die Itoa-Funktion in C

Beginnen wir mit den Grundlagen. Hier ist die einfache Syntax für die itoa-Funktion:



int hauptsächlich ( ) {

int Auf eins = 12345 ;
verkohlen str [ zwanzig ] ;
ertrank ( Auf eins , str , 10 ) ;
printf ( „Ganzzahl: %d \N Zeichenfolge: %s \N ' , Auf eins , str ) ;
zurückkehren 0 ;


}

Im angegebenen Programm lauten die Einzelheiten wie folgt:



  1. num ist die ganze Zahl
  2. str ist das Zeichen
  3. 10 ist der Bass

Lassen Sie uns nun fortfahren, ein Programm schreiben und die itoa-Funktion implementieren. Beispielsweise müssen wir ein Programm schreiben, um die eingegebenen Zahlen in eine Zeichenfolge umzuwandeln.





#include

#include

Leere ertrank ( int Auf eins , verkohlen * str , int Base ) {

int ich = 0 ;
int ist negativ = 0 ;

Wenn ( Auf eins == 0 ) {
str [ ich ++ ] = '0' ;
str [ ich ] = ' \0 ' ;
zurückkehren ;
}


Wenn ( Auf eins < 0 && Base != 10 ) {

ist negativ = 1 ;
Auf eins = - Auf eins ;
}

während ( Auf eins != 0 ) {
int rem = Auf eins % Base ;

str [ ich ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + '0' ;

Auf eins = Auf eins / Base ;
}

Wenn ( ist negativ && Base == 10 )
str [ ich ++ ] = '-' ;

str [ ich ] = ' \0 ' ;

int Start = 0 ;
int Ende = ich - 1 ;


während ( Start < Ende ) {

verkohlen Temp = str [ Start ] ;
str [ Start ] = str [ Ende ] ;
str [ Ende ] = Temp ;
Start ++;
Ende --;
}
}

int hauptsächlich ( ) {
int Auf eins ;
printf ( „Geben Sie eine Ganzzahl ein:“ ) ;

Wenn ( scanf ( '%D' , & Auf eins ) != 1 ) {
fprintf ( stderr , „Ungültige Eingabe. Bitte geben Sie eine Ganzzahl ein. \N ' ) ;
zurückkehren EXIT_FAILURE ;
}

int maximale Größe = snprintf ( NULL , 0 , '%D' , Auf eins ) + 1 ;
verkohlen * str = ( verkohlen * ) malloc ( maximale Größe ) ;

Wenn ( str == NULL ) {
fprintf ( stderr , „Speicherzuweisung fehlgeschlagen \N ' ) ;
zurückkehren EXIT_FAILURE ;
}


ertrank ( Auf eins , str , 10 ) ;

printf ( „Ganzzahl: %d \N Zeichenfolge: %s \N ' , Auf eins , str ) ;

frei ( str ) ;

zurückkehren 0 ;


}

Im vorherigen Programm ist itoa (int num, char *str, int base) die itoa-Funktion. Darüber hinaus weist die folgende Syntax dem Ergebnis direkt Null zu, wenn die eingegebene Zahl ebenfalls Null ist:

Wenn ( Auf eins == 0 ) {

str [ ich ++ ] = '0' ;
str [ ich ] = ' \0 ' ;
zurückkehren ;


}

Wenn die eingegebene Zahl negativ ist und die Basis auch nicht 10 ist, setzen die folgenden Programmzeilen das Negativ-Flag:



Wenn ( Auf eins < 0 && Base != 10 ) {

ist negativ = 1 ;
Auf eins = - Auf eins ;

Die folgende Schleife verarbeitet alle Ziffern und wandelt sie in ein entsprechendes Zeichen um. Daher verwendet das Programm für Basen größer als 10 die Buchstaben „a“ bis „f“ für die Ziffern 10 bis 15.

}

während ( Auf eins != 0 ) {

int rem = Auf eins % Base ;

str [ ich ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + '0' ;

Auf eins = Auf eins / Base ;

}

Wenn die Zahl ursprünglich negativ ist und die Basis 10 ist, hängt das Programm das negative Vorzeichen an eine Ergebniszeichenfolge an.

Wenn ( ist negativ && Base == 10 )

str [ ich ++ ] = '-' ;

Die folgenden Zeilen beenden die Ergebniszeichenfolge und kehren sie dann um, da die Ziffern während des Konvertierungsprozesses in umgekehrter Reihenfolge erhalten werden:

str [ ich ] = ' \0 ' ;

// Den String umkehren

int Start = 0 ;

int Ende = ich - 1 ;

während ( Start < Ende ) {

verkohlen Temp = str [ Start ] ;
str [ Start ] = str [ Ende ] ;
str [ Ende ] = Temp ;
Start ++;
Ende --;


}

Daher verwendet das Programm die Ganzzahl als Eingabe und reserviert den Speicher für die Zeichenfolgendarstellung. Danach ruft es itoa auf, um die Ganzzahl in die Zeichenfolge umzuwandeln, und gibt die ursprüngliche Ganzzahl aus. Schließlich wird der zugewiesene Speicher freigegeben. Geben wir dem Programm zum Beispiel eine Nummer:

Wenn Sie jedoch eine nicht ganzzahlige Zahl eingeben, zeigt das Programm das folgende Ergebnis an:

Abschluss

So können Sie die itoa-Funktion einfach in C implementieren und verwenden. Wir haben ein detailliertes Beispiel verwendet, das mehrere Funktionen enthält, um die Ganzzahl in einen String umzuwandeln. Denken Sie daran, es ist nur ein Beispiel, aber Sie können die itoa-Funktion mit verschiedenen Funktionen kombinieren, um erstaunliche Programme zu schreiben.