Slik bruker du Itoa-funksjonen i C

Slik Bruker Du Itoa Funksjonen I C



Programmeringsspråket C ble lansert for over fem tiår siden. Siden den gang har den fått enorm popularitet i programmeringsverdenen. Den utmerker seg de andre språkene på grunn av funksjonene, inkludert strukturell enkelhet, funksjoner, portabilitet, effektiv minneadministrasjon, etc. Til tross for at den har forskjellige andre funksjoner, er funksjoner i C de mest fremtredende ressursene som hjelper mange brukere med å skrive de robuste kodebitene.

Videre er itoa en mye brukt ikke-standard funksjon som fungerer som en datatypekonverter. Den tar datatypen int som input og konverterer den til en streng. Imidlertid vet mange av dere ikke bruken. Derfor forklarer denne veiledningen kortfattet hvordan du bruker itoa-funksjonen i C uten problemer.







Slik bruker du Itoa-funksjonen i C

La oss starte med det grunnleggende. Her er den enkle syntaksen for itoa-funksjonen:



int hoved- ( ) {

int på en = 12345 ;
røye str [ tjue ] ;
druknet ( på en , str , 10 ) ;
printf ( 'Heltall: %d \n Streng: %s \n ' , på en , str ) ;
komme tilbake 0 ;


}

I det gitte programmet er detaljene som følger:



  1. num er heltall
  2. str er tegnet
  3. 10 er bassen

La oss nå gå videre, skrive et program og implementere itoa-funksjonen. For eksempel må vi skrive et program for å endre de angitte tallene i strengen.





#include

#include

tomrom druknet ( int på en , røye * str , int utgangspunkt ) {

int Jeg = 0 ;
int er negativ = 0 ;

hvis ( på en == 0 ) {
str [ Jeg ++ ] = '0' ;
str [ Jeg ] = ' \0 ' ;
komme tilbake ;
}


hvis ( på en < 0 && utgangspunkt != 10 ) {

er negativ = 1 ;
på en = - på en ;
}

samtidig som ( på en != 0 ) {
int rem = på en % utgangspunkt ;

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

på en = på en / utgangspunkt ;
}

hvis ( er negativ && utgangspunkt == 10 )
str [ Jeg ++ ] = '-' ;

str [ Jeg ] = ' \0 ' ;

int start = 0 ;
int slutt = Jeg - 1 ;


samtidig som ( start < slutt ) {

røye temp = str [ start ] ;
str [ start ] = str [ slutt ] ;
str [ slutt ] = temp ;
start ++;
slutt --;
}
}

int hoved- ( ) {
int på en ;
printf ( 'Skriv inn et heltall: ' ) ;

hvis ( scanf ( '%d' , & på en ) != 1 ) {
fprintf ( stderr , 'Ugyldig inndata. Skriv inn et heltall. \n ' ) ;
komme tilbake EXIT_FAILURE ;
}

int maks_størrelse = snprintf ( NULL , 0 , '%d' , på en ) + 1 ;
røye * str = ( røye * ) malloc ( maks_størrelse ) ;

hvis ( str == NULL ) {
fprintf ( stderr , 'Minnetildeling mislyktes \n ' ) ;
komme tilbake EXIT_FAILURE ;
}


druknet ( på en , str , 10 ) ;

printf ( 'Heltall: %d \n Streng: %s \n ' , på en , str ) ;

gratis ( str ) ;

komme tilbake 0 ;


}

I forrige program er itoa (int num, char *str, int base) itoa-funksjonen. Dessuten tildeler følgende syntaks direkte null til resultatet når inndatanummeret også er null:

hvis ( på en == 0 ) {

str [ Jeg ++ ] = '0' ;
str [ Jeg ] = ' \0 ' ;
komme tilbake ;


}

Når inngangstallet er negativt og grunntallet heller ikke er 10, vil følgende programlinjer sette det negative flagget:



hvis ( på en < 0 && utgangspunkt != 10 ) {

er negativ = 1 ;
på en = - på en ;

Følgende sløyfe behandler alle sifrene og konverterer dem til et tilsvarende tegn. Derfor, for baser som er større enn 10, bruker programmet bokstavene 'a' til 'f' for sifrene 10 til 15.

}

samtidig som ( på en != 0 ) {

int rem = på en % utgangspunkt ;

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

på en = på en / utgangspunkt ;

}

Når tallet opprinnelig er negativt og grunntallet er 10, vil programmet legge til det negative tegnet til en resultatstreng.

hvis ( er negativ && utgangspunkt == 10 )

str [ Jeg ++ ] = '-' ;

Følgende linjer avslutter resultatstrengen og reverserer den ettersom sifrene oppnås i omvendt rekkefølge under konverteringsprosessen:

str [ Jeg ] = ' \0 ' ;

// Snu strengen

int start = 0 ;

int slutt = Jeg - 1 ;

samtidig som ( start < slutt ) {

røye temp = str [ start ] ;
str [ start ] = str [ slutt ] ;
str [ slutt ] = temp ;
start ++;
slutt --;


}

Derfor tar programmet heltallet som inngang og tildeler minnet for strengrepresentasjonen. Etter det kaller den itoa for å konvertere heltallet til strengen og skriver ut det originale heltallet. Til slutt frigjør det tildelt minne. La oss for eksempel gi et nummer til programmet:

Men hvis du angir et ikke-heltall, vil programmet vise følgende resultat:

Konklusjon

Slik kan du enkelt implementere og bruke itoa-funksjonen i C. Vi brukte et detaljert eksempel som inneholder flere funksjoner for å konvertere heltall til streng. Husk at det bare er et eksempel, men du kan kombinere itoa-funksjonen med ulike funksjoner for å skrive fantastiske programmer.