Kako koristiti Itoa funkciju u C

Kako Koristiti Itoa Funkciju U C



Programski jezik C pokrenut je prije više od pet desetljeća. Od tada je stekao ogromnu popularnost u svijetu programiranja. Nadmašuje ostale jezike zahvaljujući svojim značajkama uključujući strukturnu jednostavnost, funkcije, prenosivost, učinkovito upravljanje memorijom, itd. Unatoč raznim drugim značajkama, funkcije u C-u su najistaknutija sredstva koja pomažu mnogim korisnicima u pisanju robusnih isječaka koda.

Nadalje, itoa je široko korištena nestandardna funkcija koja djeluje kao pretvarač tipa podataka. Uzima tip podataka int kao ulaz i pretvara ga u niz. Međutim, mnogi od vas ne znaju njegovu upotrebu. Stoga ovaj vodič sažeto objašnjava kako koristiti funkciju itoa u C-u bez gnjavaže.







Kako koristiti Itoa funkciju u C

Počnimo s osnovama. Evo jednostavne sintakse za funkciju itoa:



int glavni ( ) {

int na jedan = 12345 ;
char str [ dvadeset ] ;
utopio se ( na jedan , str , 10 ) ;
printf ( 'Cijeli broj: %d \n Niz: %s \n ' , na jedan , str ) ;
povratak 0 ;


}

U navedenom programu detalji su sljedeći:



  1. num je cijeli broj
  2. str je znak
  3. 10 je bas

Sada idemo naprijed, napišemo program i implementiramo funkciju itoa. Na primjer, trebamo napisati program za promjenu unesenih brojeva u niz.





#include

#include

poništiti utopio se ( int na jedan , char * str , int baza ) {

int ja = 0 ;
int je Negativno = 0 ;

ako ( na jedan == 0 ) {
str [ ja ++ ] = '0' ;
str [ ja ] = ' \0 ' ;
povratak ;
}


ako ( na jedan < 0 && baza != 10 ) {

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

dok ( na jedan != 0 ) {
int rem = na jedan % baza ;

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

na jedan = na jedan / baza ;
}

ako ( je Negativno && baza == 10 )
str [ ja ++ ] = '-' ;

str [ ja ] = ' \0 ' ;

int početak = 0 ;
int kraj = ja - 1 ;


dok ( početak < kraj ) {

char temp = str [ početak ] ;
str [ početak ] = str [ kraj ] ;
str [ kraj ] = temp ;
početak ++;
kraj --;
}
}

int glavni ( ) {
int na jedan ;
printf ( 'Unesite cijeli broj: ' ) ;

ako ( skenirati ( '%d' , i na jedan ) != 1 ) {
fprintf ( stderr , 'Nevažeći unos. Unesite cijeli broj. \n ' ) ;
povratak EXIT_FAILURE ;
}

int najveća_veličina = snprintf ( NULL , 0 , '%d' , na jedan ) + 1 ;
char * str = ( char * ) malloc ( najveća_veličina ) ;

ako ( str == NULL ) {
fprintf ( stderr , 'Dodjela memorije nije uspjela \n ' ) ;
povratak EXIT_FAILURE ;
}


utopio se ( na jedan , str , 10 ) ;

printf ( 'Cijeli broj: %d \n Niz: %s \n ' , na jedan , str ) ;

besplatno ( str ) ;

povratak 0 ;


}

U prethodnom programu, itoa (int num, char *str, int base) je funkcija itoa. Štoviše, sljedeća sintaksa izravno dodjeljuje nulu rezultatu kada je ulazni broj također nula:

ako ( na jedan == 0 ) {

str [ ja ++ ] = '0' ;
str [ ja ] = ' \0 ' ;
povratak ;


}

Kada je ulazni broj negativan, a baza također nije 10, sljedeće programske linije će postaviti negativnu oznaku:



ako ( na jedan < 0 && baza != 10 ) {

je Negativno = 1 ;
na jedan = - na jedan ;

Sljedeća petlja obrađuje sve znamenke i pretvara ih u odgovarajući znak. Dakle, za baze koje su veće od 10, program koristi slova 'a' do 'f' za znamenke od 10 do 15.

}

dok ( na jedan != 0 ) {

int rem = na jedan % baza ;

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

na jedan = na jedan / baza ;

}

Kada je broj izvorno negativan, a baza je 10, program će nizu rezultata dodati predznak minus.

ako ( je Negativno && baza == 10 )

str [ ja ++ ] = '-' ;

Sljedeći redovi završavaju niz rezultata i zatim ga preokreću kako se znamenke dobivaju obrnutim redoslijedom tijekom procesa pretvorbe:

str [ ja ] = ' \0 ' ;

// Obrnuti niz

int početak = 0 ;

int kraj = ja - 1 ;

dok ( početak < kraj ) {

char temp = str [ početak ] ;
str [ početak ] = str [ kraj ] ;
str [ kraj ] = temp ;
početak ++;
kraj --;


}

Dakle, program uzima cijeli broj kao ulaz i dodjeljuje memoriju za prikaz niza. Nakon toga poziva itoa za pretvaranje cijelog broja u niz i ispisuje originalni cijeli broj. Konačno, oslobađa dodijeljenu memoriju. Na primjer, dajmo broj programu:

Međutim, ako unesete broj koji nije cijeli broj, program će pokazati sljedeći rezultat:

Zaključak

Ovako možete jednostavno implementirati i koristiti funkciju itoa u C-u. Koristili smo detaljan primjer koji sadrži više funkcija za pretvaranje cijelog broja u niz. Zapamtite, to je samo primjer, ali možete kombinirati funkciju itoa s raznim funkcijama da biste napisali nevjerojatne programe.