Hur man använder Itoa-funktionen i C

Hur Man Anvander Itoa Funktionen I C



Programmeringsspråket C lanserades för över fem decennier sedan. Sedan dess har det vunnit enorm popularitet i programmeringsvärlden. Det överträffar de andra språken på grund av dess funktioner, inklusive strukturell enkelhet, funktioner, portabilitet, effektiv minneshantering, etc. Trots att den har flera andra funktioner är funktioner i C de mest framträdande tillgångarna som hjälper många användare att skriva de robusta kodavsnitten.

Dessutom är itoa en allmänt använd icke-standardfunktion som fungerar som en datatypskonverterare. Den tar datatypen int som indata och konverterar den till en sträng. Men många av er känner inte till dess användning. Därför förklarar den här guiden kortfattat hur man använder itoa-funktionen i C utan krångel.







Hur man använder Itoa-funktionen i C

Låt oss börja med grunderna. Här är den enkla syntaxen för itoa-funktionen:



int huvud ( ) {

int på ett = 12345 ;
röding str [ tjugo ] ;
drunknade ( på ett , str , 10 ) ;
printf ( 'Heltal: %d \n Sträng: %s \n ' , på ett , str ) ;
lämna tillbaka 0 ;


}

I det givna programmet är detaljerna följande:



  1. num är heltal
  2. str är tecknet
  3. 10 är basen

Låt oss nu gå vidare, skriva ett program och implementera itoa-funktionen. Till exempel måste vi skriva ett program för att ändra de inmatade siffrorna i strängen.





#include

#include

tomhet drunknade ( int på ett , röding * str , int bas ) {

int i = 0 ;
int är negativ = 0 ;

om ( på ett == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
lämna tillbaka ;
}


om ( på ett < 0 && bas != 10 ) {

är negativ = 1 ;
på ett = - på ett ;
}

medan ( på ett != 0 ) {
int rem = på ett % bas ;

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

på ett = på ett / bas ;
}

om ( är negativ && bas == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int Start = 0 ;
int slutet = i - 1 ;


medan ( Start < slutet ) {

röding temp = str [ Start ] ;
str [ Start ] = str [ slutet ] ;
str [ slutet ] = temp ;
Start ++;
slutet --;
}
}

int huvud ( ) {
int på ett ;
printf ( 'Ange ett heltal: ' ) ;

om ( scanf ( '%d' , & på ett ) != 1 ) {
fprintf ( stderr , 'Ogiltig inmatning. Ange ett heltal. \n ' ) ;
lämna tillbaka EXIT_FAILURE ;
}

int max_size = snprintf ( NULL , 0 , '%d' , på ett ) + 1 ;
röding * str = ( röding * ) malloc ( max_size ) ;

om ( str == NULL ) {
fprintf ( stderr , 'Minnesallokering misslyckades \n ' ) ;
lämna tillbaka EXIT_FAILURE ;
}


drunknade ( på ett , str , 10 ) ;

printf ( 'Heltal: %d \n Sträng: %s \n ' , på ett , str ) ;

fri ( str ) ;

lämna tillbaka 0 ;


}

I det föregående programmet är itoa (int num, char *str, int bas) itoa-funktionen. Dessutom tilldelar följande syntax direkt noll till resultatet när inmatningsnumret också är noll:

om ( på ett == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
lämna tillbaka ;


}

När ingångsnumret är negativt och basen inte heller är 10, kommer följande programrader att sätta den negativa flaggan:



om ( på ett < 0 && bas != 10 ) {

är negativ = 1 ;
på ett = - på ett ;

Följande loop bearbetar alla siffror och omvandlar dem till ett motsvarande tecken. För baser som är större än 10 använder programmet därför bokstäverna 'a' till 'f' för siffrorna 10 till 15.

}

medan ( på ett != 0 ) {

int rem = på ett % bas ;

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

på ett = på ett / bas ;

}

När talet ursprungligen är negativt och basen är 10, kommer programmet att lägga till det negativa tecknet till en resultatsträng.

om ( är negativ && bas == 10 )

str [ i ++ ] = '-' ;

Följande rader avslutar resultatsträngen och vänder den sedan när siffrorna erhålls i omvänd ordning under konverteringsprocessen:

str [ i ] = ' \0 ' ;

// Vänd på strängen

int Start = 0 ;

int slutet = i - 1 ;

medan ( Start < slutet ) {

röding temp = str [ Start ] ;
str [ Start ] = str [ slutet ] ;
str [ slutet ] = temp ;
Start ++;
slutet --;


}

Därför tar programmet heltal som indata och allokerar minnet för strängrepresentationen. Efter det anropar den itoa för att konvertera heltal till strängen och skriver ut det ursprungliga heltal. Slutligen frigör det det tilldelade minnet. Låt oss till exempel ge ett nummer till programmet:

Men om du anger ett icke-heltalsnummer kommer programmet att visa följande resultat:

Slutsats

Så här kan du enkelt implementera och använda itoa-funktionen i C. Vi använde ett detaljerat exempel som innehåller flera funktioner för att konvertera heltal till sträng. Kom ihåg att det bara är ett exempel, men du kan kombinera itoa-funktionen med olika funktioner för att skriva fantastiska program.