Kako uporabljati funkcijo Itoa v C

Kako Uporabljati Funkcijo Itoa V C



Programski jezik C je bil predstavljen pred več kot petimi desetletji. Od takrat je pridobil izjemno priljubljenost v svetu programiranja. Prekaša druge jezike zaradi svojih značilnosti, vključno s strukturno preprostostjo, funkcijami, prenosljivostjo, učinkovitim upravljanjem pomnilnika itd. Kljub številnim drugim funkcijam so funkcije v C najpomembnejše sredstvo, ki mnogim uporabnikom pomaga pri pisanju robustnih odrezkov kode.

Poleg tega je itoa pogosto uporabljena nestandardna funkcija, ki deluje kot pretvornik podatkovnih vrst. Kot vhod vzame podatkovni tip int in ga pretvori v niz. Vendar mnogi od vas ne poznajo njegove uporabe. Zato ta vodnik jedrnato razlaga, kako uporabljati funkcijo itoa v C brez težav.







Kako uporabljati funkcijo Itoa v C

Začnimo z osnovami. Tukaj je preprosta sintaksa za funkcijo itoa:



int glavni ( ) {

int na enem = 12345 ;
char str [ dvajset ] ;
utopljen ( na enem , str , 10 ) ;
printf ( 'Celo število: %d \n Niz: %s \n ' , na enem , str ) ;
vrnitev 0 ;


}

V danem programu so podrobnosti naslednje:



  1. num je celo število
  2. str je znak
  3. 10 je bas

Zdaj pa pojdimo naprej, napišimo program in implementirajmo funkcijo itoa. Na primer, moramo napisati program za spreminjanje vnesenih števil v niz.





#include

#include

praznina utopljen ( int na enem , char * str , int osnova ) {

int jaz = 0 ;
int je Negativno = 0 ;

če ( na enem == 0 ) {
str [ jaz ++ ] = '0' ;
str [ jaz ] = ' \0 ' ;
vrnitev ;
}


če ( na enem < 0 && osnova != 10 ) {

je Negativno = 1 ;
na enem = - na enem ;
}

medtem ( na enem != 0 ) {
int rem = na enem % osnova ;

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

na enem = na enem / osnova ;
}

če ( je Negativno && osnova == 10 )
str [ jaz ++ ] = '-' ;

str [ jaz ] = ' \0 ' ;

int začetek = 0 ;
int konec = jaz - 1 ;


medtem ( začetek < konec ) {

char temp = str [ začetek ] ;
str [ začetek ] = str [ konec ] ;
str [ konec ] = temp ;
začetek ++;
konec --;
}
}

int glavni ( ) {
int na enem ;
printf ( 'Vnesite celo število: ' ) ;

če ( scanf ( '%d' , & na enem ) != 1 ) {
fprintf ( stderr , »Neveljaven vnos. Prosimo, vnesite celo število. \n ' ) ;
vrnitev EXIT_FAILURE ;
}

int max_size = snprintf ( NIČ , 0 , '%d' , na enem ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;

če ( str == NIČ ) {
fprintf ( stderr , »Dodelitev pomnilnika ni uspela \n ' ) ;
vrnitev EXIT_FAILURE ;
}


utopljen ( na enem , str , 10 ) ;

printf ( 'Celo število: %d \n Niz: %s \n ' , na enem , str ) ;

prost ( str ) ;

vrnitev 0 ;


}

V prejšnjem programu je itoa (int num, char *str, int base) funkcija itoa. Poleg tega naslednja sintaksa neposredno dodeli nič rezultatu, ko je tudi vhodna številka nič:

če ( na enem == 0 ) {

str [ jaz ++ ] = '0' ;
str [ jaz ] = ' \0 ' ;
vrnitev ;


}

Ko je vhodno število negativno in tudi osnova ni 10, bodo naslednje programske vrstice nastavile negativno zastavico:



če ( na enem < 0 && osnova != 10 ) {

je Negativno = 1 ;
na enem = - na enem ;

Naslednja zanka obdela vse števke in jih pretvori v ustrezen znak. Zato za baze, ki so večje od 10, program uporablja črke od 'a' do 'f' za števke od 10 do 15.

}

medtem ( na enem != 0 ) {

int rem = na enem % osnova ;

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

na enem = na enem / osnova ;

}

Ko je število prvotno negativno in je osnova 10, bo program rezultatskemu nizu dodal negativni predznak.

če ( je Negativno && osnova == 10 )

str [ jaz ++ ] = '-' ;

Naslednje vrstice končajo rezultatni niz in ga nato obrnejo, ko so števke med postopkom pretvorbe pridobljene v obratnem vrstnem redu:

str [ jaz ] = ' \0 ' ;

// Obrnite niz

int začetek = 0 ;

int konec = jaz - 1 ;

medtem ( začetek < konec ) {

char temp = str [ začetek ] ;
str [ začetek ] = str [ konec ] ;
str [ konec ] = temp ;
začetek ++;
konec --;


}

Zato program vzame celo število kot vhod in dodeli pomnilnik za predstavitev niza. Po tem pokliče itoa, da pretvori celo število v niz in natisne izvirno celo število. Končno sprosti dodeljeni pomnilnik. Na primer, dajmo programu številko:

Če pa vnesete necelo število, bo program prikazal naslednji rezultat:

Zaključek

Tako lahko preprosto implementirate in uporabite funkcijo itoa v C. Uporabili smo podroben primer, ki vsebuje več funkcij za pretvorbo celega števila v niz. Ne pozabite, da je le primer, vendar lahko funkcijo itoa kombinirate z različnimi funkcijami, da napišete neverjetne programe.