Kaip naudoti „Itoa“ funkciją C

Kaip Naudoti Itoa Funkcija C



C programavimo kalba buvo pradėta naudoti daugiau nei prieš penkis dešimtmečius. Nuo tada jis įgijo didžiulį populiarumą programavimo pasaulyje. Jis išsiskiria kitomis kalbomis dėl savo savybių, įskaitant struktūrinį paprastumą, funkcijas, perkeliamumą, efektyvų atminties valdymą ir kt. Nepaisant įvairių kitų funkcijų, C kalbos funkcijos yra ryškiausias turtas, padedantis daugeliui vartotojų rašyti patikimus kodo fragmentus.

Be to, itoa yra plačiai naudojama nestandartinė funkcija, kuri veikia kaip duomenų tipo keitiklis. Jis paima duomenų tipą int kaip įvestį ir konvertuoja jį į eilutę. Tačiau daugelis iš jūsų nežino jo naudojimo. Todėl šiame vadove glaustai paaiškinama, kaip be vargo naudoti funkciją itoa programoje C.







Kaip naudoti „Itoa“ funkciją C

Pradėkime nuo pagrindų. Štai paprasta itoa funkcijos sintaksė:



tarpt pagrindinis ( ) {

tarpt ant vieno = 12345 ;
char str [ dvidešimt ] ;
nuskendo ( ant vieno , str , 10 ) ;
printf ( 'Sveikasis skaičius: %d \n Eilutė: %s \n , ant vieno , str ) ;
grąžinti 0 ;


}

Pateiktoje programoje išsami informacija yra tokia:



  1. skaičius yra sveikas skaičius
  2. str yra personažas
  3. 10 yra bosas

Dabar judėkime į priekį, parašykime programą ir įgyvendinkime itoa funkciją. Pavyzdžiui, turime parašyti programą, kuri pakeistų įvestus skaičius į eilutę.





#include

#include

tuštuma nuskendo ( tarpt ant vieno , char * str , tarpt bazė ) {

tarpt i = 0 ;
tarpt yra Neigiamas = 0 ;

jeigu ( ant vieno == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = \0 ;
grąžinti ;
}


jeigu ( ant vieno < 0 && bazė != 10 ) {

yra Neigiamas = 1 ;
ant vieno = - ant vieno ;
}

kol ( ant vieno != 0 ) {
tarpt rem = ant vieno % bazė ;

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

ant vieno = ant vieno / bazė ;
}

jeigu ( yra Neigiamas && bazė == 10 )
str [ i ++ ] = '-' ;

str [ i ] = \0 ;

tarpt pradėti = 0 ;
tarpt galas = i - 1 ;


kol ( pradėti < galas ) {

char temp = str [ pradėti ] ;
str [ pradėti ] = str [ galas ] ;
str [ galas ] = temp ;
pradėti ++;
galas --;
}
}

tarpt pagrindinis ( ) {
tarpt ant vieno ;
printf ( 'Įveskite sveikąjį skaičių:' ) ;

jeigu ( scanf ( „%d“ , & ant vieno ) != 1 ) {
fprintf ( stderr , 'Netinkama įvestis. Įveskite sveikąjį skaičių. \n ) ;
grąžinti EXIT_FAILURE ;
}

tarpt maksimalus_dydis = snprintf ( NULL , 0 , „%d“ , ant vieno ) + 1 ;
char * str = ( char * ) malloc ( maksimalus_dydis ) ;

jeigu ( str == NULL ) {
fprintf ( stderr , „Nepavyko paskirstyti atminties \n ) ;
grąžinti EXIT_FAILURE ;
}


nuskendo ( ant vieno , str , 10 ) ;

printf ( 'Sveikasis skaičius: %d \n Eilutė: %s \n , ant vieno , str ) ;

Laisvas ( str ) ;

grąžinti 0 ;


}

Ankstesnėje programoje itoa (int num, char *str, int base) yra itoa funkcija. Be to, ši sintaksė rezultatui tiesiogiai priskiria nulį, kai įvesties skaičius taip pat yra nulis:

jeigu ( ant vieno == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = \0 ;
grąžinti ;


}

Kai įvesties skaičius yra neigiamas, o bazė taip pat nėra 10, šios programos eilutės nustatys neigiamą vėliavėlę:



jeigu ( ant vieno < 0 && bazė != 10 ) {

yra Neigiamas = 1 ;
ant vieno = - ant vieno ;

Ši kilpa apdoroja visus skaitmenis ir konvertuoja juos į atitinkamą simbolį. Taigi, kai bazės yra didesnės nei 10, programa naudoja raides nuo „a“ iki „f“ skaitmenims nuo 10 iki 15.

}

kol ( ant vieno != 0 ) {

tarpt rem = ant vieno % bazė ;

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

ant vieno = ant vieno / bazė ;

}

Kai iš pradžių skaičius yra neigiamas, o bazė yra 10, programa prie rezultatų eilutės pridės neigiamą ženklą.

jeigu ( yra Neigiamas && bazė == 10 )

str [ i ++ ] = '-' ;

Šios eilutės užbaigia rezultatų eilutę ir apverčia ją atvirkštine tvarka, nes konvertavimo proceso metu skaitmenys gaunami atvirkštine tvarka:

str [ i ] = \0 ;

// Apverskite eilutę

tarpt pradėti = 0 ;

tarpt galas = i - 1 ;

kol ( pradėti < galas ) {

char temp = str [ pradėti ] ;
str [ pradėti ] = str [ galas ] ;
str [ galas ] = temp ;
pradėti ++;
galas --;


}

Taigi programa kaip įvestį paima sveikąjį skaičių ir skiria atmintį eilutės vaizdavimui. Po to jis iškviečia itoa, kad konvertuotų sveikąjį skaičių į eilutę ir atspausdintų pradinį sveikąjį skaičių. Galiausiai jis atlaisvina skirtą atmintį. Pavyzdžiui, suteikime programai numerį:

Tačiau jei įvesite ne sveikąjį skaičių, programa parodys tokį rezultatą:

Išvada

Taip galite lengvai įdiegti ir naudoti funkciją itoa programoje C. Naudojome išsamų pavyzdį, kuriame yra kelios funkcijos, kad sveikasis skaičius konvertuotų į eilutę. Atminkite, kad tai tik pavyzdys, tačiau galite derinti funkciją itoa su įvairiomis funkcijomis, kad galėtumėte parašyti nuostabias programas.