Ako používať funkciu Itoa v C

Ako Pouzivat Funkciu Itoa V C



Programovací jazyk C bol spustený pred viac ako piatimi desaťročiami. Odvtedy si vo svete programovania získal obrovskú popularitu. Vyniká nad ostatnými jazykmi vďaka svojim vlastnostiam vrátane štrukturálnej jednoduchosti, funkcií, prenosnosti, efektívnej správy pamäte atď. Napriek rôznym ďalším funkciám sú funkcie v jazyku C najvýznamnejšími aktívami, ktoré mnohým používateľom pomáhajú pri písaní robustných úryvkov kódu.

Itoa je navyše široko používaná neštandardná funkcia, ktorá funguje ako prevodník dátových typov. Ako vstup berie dátový typ int a skonvertuje ho na reťazec. Mnohí z vás však jeho využitie nepoznajú. Preto táto príručka stručne vysvetľuje, ako bez problémov používať funkciu itoa v jazyku C.







Ako používať funkciu Itoa v C

Začnime základmi. Tu je jednoduchá syntax pre funkciu itoa:



int Hlavná ( ) {

int na jeden = 12345 ;
char str [ dvadsať ] ;
utopil ( na jeden , str , 10 ) ;
printf ( 'Celé číslo: %d.' \n Reťazec: %s \n ' , na jeden , str ) ;
vrátiť 0 ;


}

Podrobnosti v danom programe sú nasledovné:



  1. num je celé číslo
  2. str je znak
  3. 10 sú basy

Teraz poďme dopredu, napíšme program a implementujme funkciu itoa. Napríklad musíme napísať program na zmenu zadaných čísel na reťazec.





#include

#include

neplatné utopil ( int na jeden , char * str , int základňu ) {

int i = 0 ;
int je Negative = 0 ;

ak ( na jeden == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
vrátiť ;
}


ak ( na jeden < 0 && základňu != 10 ) {

je Negative = 1 ;
na jeden = - na jeden ;
}

zatiaľ čo ( na jeden != 0 ) {
int rem = na jeden % základňu ;

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

na jeden = na jeden / základňu ;
}

ak ( je Negative && základňu == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int začať = 0 ;
int koniec = i - 1 ;


zatiaľ čo ( začať < koniec ) {

char tepl = str [ začať ] ;
str [ začať ] = str [ koniec ] ;
str [ koniec ] = tepl ;
začať ++;
koniec --;
}
}

int Hlavná ( ) {
int na jeden ;
printf ( 'Zadajte celé číslo: ' ) ;

ak ( scanf ( '%d' , & na jeden ) != 1 ) {
fprintf ( stderr , 'Neplatný vstup. Zadajte celé číslo. \n ' ) ;
vrátiť EXIT_FAILURE ;
}

int max_size = snprintf ( NULOVÝ , 0 , '%d' , na jeden ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;

ak ( str == NULOVÝ ) {
fprintf ( stderr , 'Pridelenie pamäte zlyhalo \n ' ) ;
vrátiť EXIT_FAILURE ;
}


utopil ( na jeden , str , 10 ) ;

printf ( 'Celé číslo: %d.' \n Reťazec: %s \n ' , na jeden , str ) ;

zadarmo ( str ) ;

vrátiť 0 ;


}

V predchádzajúcom programe je itoa (int num, char *str, int základ) funkciou itoa. Okrem toho nasledujúca syntax priamo priradí nulu k výsledku, keď je vstupné číslo tiež nula:

ak ( na jeden == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
vrátiť ;


}

Keď je vstupné číslo záporné a základ tiež nie je 10, nasledujúce riadky programu nastavia záporný príznak:



ak ( na jeden < 0 && základňu != 10 ) {

je Negative = 1 ;
na jeden = - na jeden ;

Nasledujúci cyklus spracuje všetky číslice a prevedie ich na zodpovedajúci znak. Preto pre základy, ktoré sú väčšie ako 10, program používa písmená „a“ až „f“ pre číslice 10 až 15.

}

zatiaľ čo ( na jeden != 0 ) {

int rem = na jeden % základňu ;

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

na jeden = na jeden / základňu ;

}

Keď je číslo pôvodne záporné a základ je 10, program k výslednému reťazcu pripojí záporné znamienko.

ak ( je Negative && základňu == 10 )

str [ i ++ ] = '-' ;

Nasledujúce riadky ukončia výsledný reťazec a potom ho obrátia, pretože počas procesu prevodu sa číslice získavajú v opačnom poradí:

str [ i ] = ' \0 ' ;

// Obrátiť reťazec

int začať = 0 ;

int koniec = i - 1 ;

zatiaľ čo ( začať < koniec ) {

char tepl = str [ začať ] ;
str [ začať ] = str [ koniec ] ;
str [ koniec ] = tepl ;
začať ++;
koniec --;


}

Preto program berie celé číslo ako vstup a prideľuje pamäť pre reprezentáciu reťazca. Potom zavolá itoa na konverziu celého čísla na reťazec a vytlačí pôvodné celé číslo. Nakoniec uvoľní pridelenú pamäť. Napríklad, dajme programu číslo:

Ak však zadáte iné ako celé číslo, program zobrazí nasledujúci výsledok:

Záver

Takto môžete jednoducho implementovať a používať funkciu itoa v jazyku C. Použili sme podrobný príklad, ktorý obsahuje viacero funkcií na prevod celého čísla na reťazec. Pamätajte, že je to len príklad, ale funkciu itoa môžete kombinovať s rôznymi funkciami a napísať úžasné programy.