Sådan bruges Itoa-funktionen i C

Sadan Bruges Itoa Funktionen I C



Programmeringssproget C blev lanceret for over fem årtier siden. Siden da har det vundet enorm popularitet i programmeringsverdenen. Det udmærker sig på de andre sprog på grund af dets funktioner, herunder strukturel enkelhed, funktioner, portabilitet, effektiv hukommelsesstyring osv. På trods af at de har forskellige andre funktioner, er funktioner i C de mest fremtrædende aktiver, der hjælper mange brugere med at skrive de robuste kodestykker.

Ydermere er itoa en meget brugt ikke-standard funktion, der fungerer som en datatypekonverter. Den tager datatypen int som input og konverterer den til en streng. Men mange af jer kender ikke dens brug. Derfor forklarer denne vejledning kortfattet, hvordan man bruger itoa-funktionen i C uden besvær.







Sådan bruges Itoa-funktionen i C

Lad os starte med det grundlæggende. Her er den simple syntaks for itoa-funktionen:



int vigtigste ( ) {

int på en = 12345 ;
char str [ tyve ] ;
druknede ( på en , str , 10 ) ;
printf ( 'Heltal: %d \n Streng: %s \n ' , på en , str ) ;
Vend tilbage 0 ;


}

I det givne program er detaljerne som følger:



  1. num er hele tallet
  2. str er tegnet
  3. 10 er bassen

Lad os nu gå videre, skrive et program og implementere itoa-funktionen. For eksempel skal vi skrive et program for at ændre de indtastede tal i strengen.





#include

#include

ugyldig druknede ( int på en , char * str , int grundlag ) {

int jeg = 0 ;
int er negativ = 0 ;

hvis ( på en == 0 ) {
str [ jeg ++ ] = '0' ;
str [ jeg ] = ' \0 ' ;
Vend tilbage ;
}


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

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

mens ( på en != 0 ) {
int rem = på en % grundlag ;

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

på en = på en / grundlag ;
}

hvis ( er negativ && grundlag == 10 )
str [ jeg ++ ] = '-' ;

str [ jeg ] = ' \0 ' ;

int Start = 0 ;
int ende = jeg - 1 ;


mens ( Start < ende ) {

char Midlertidig = str [ Start ] ;
str [ Start ] = str [ ende ] ;
str [ ende ] = Midlertidig ;
Start ++;
ende --;
}
}

int vigtigste ( ) {
int på en ;
printf ( 'Indtast et heltal: ' ) ;

hvis ( scanf ( '%d' , & på en ) != 1 ) {
fprintf ( stderr , 'Ugyldigt input. Indtast venligst et heltal. \n ' ) ;
Vend tilbage EXIT_FAILURE ;
}

int max_størrelse = snprintf ( NUL , 0 , '%d' , på en ) + 1 ;
char * str = ( char * ) malloc ( max_størrelse ) ;

hvis ( str == NUL ) {
fprintf ( stderr , 'Hukommelsestildeling mislykkedes \n ' ) ;
Vend tilbage EXIT_FAILURE ;
}


druknede ( på en , str , 10 ) ;

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

gratis ( str ) ;

Vend tilbage 0 ;


}

I det forrige program er itoa (int num, char *str, int base) itoa-funktionen. Desuden tildeler følgende syntaks direkte nul til resultatet, når inputnummeret også er nul:

hvis ( på en == 0 ) {

str [ jeg ++ ] = '0' ;
str [ jeg ] = ' \0 ' ;
Vend tilbage ;


}

Når inputtallet er negativt, og grundtallet heller ikke er 10, vil følgende programlinjer sætte det negative flag:



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

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

Den følgende sløjfe behandler alle cifrene og konverterer dem til et tilsvarende tegn. For baser, der er større end 10, bruger programmet derfor bogstaverne 'a' til 'f' for cifrene 10 til 15.

}

mens ( på en != 0 ) {

int rem = på en % grundlag ;

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

på en = på en / grundlag ;

}

Når tallet oprindeligt er negativt, og grundtallet er 10, vil programmet tilføje det negative tegn til en resultatstreng.

hvis ( er negativ && grundlag == 10 )

str [ jeg ++ ] = '-' ;

Følgende linjer afslutter resultatstrengen og vender den derefter, efterhånden som cifrene opnås i omvendt rækkefølge under konverteringsprocessen:

str [ jeg ] = ' \0 ' ;

// Vend strengen om

int Start = 0 ;

int ende = jeg - 1 ;

mens ( Start < ende ) {

char Midlertidig = str [ Start ] ;
str [ Start ] = str [ ende ] ;
str [ ende ] = Midlertidig ;
Start ++;
ende --;


}

Derfor tager programmet heltallet som input og tildeler hukommelsen til strengrepræsentationen. Derefter kalder den itoa for at konvertere heltal til strengen og udskriver det originale heltal. Endelig frigiver den den tildelte hukommelse. Lad os for eksempel give et nummer til programmet:

Men hvis du indtaster et ikke-heltal, vil programmet vise følgende resultat:

Konklusion

Sådan kan du nemt implementere og bruge itoa-funktionen i C. Vi brugte et detaljeret eksempel, der indeholder flere funktioner til at konvertere heltal til streng. Husk, det er kun et eksempel, men du kan kombinere itoa-funktionen med forskellige funktioner for at skrive fantastiske programmer.