Jak používat funkci Itoa v C

Jak Pouzivat Funkci Itoa V C



Programovací jazyk C byl spuštěn před více než pěti desetiletími. Od té doby si získal obrovskou popularitu ve světě programování. Převyšuje ostatní jazyky díky svým vlastnostem včetně strukturální jednoduchosti, funkcí, přenositelnosti, efektivní správy paměti atd. Navzdory různým dalším funkcím jsou funkce v jazyce C nejvýznamnější aktiva, která mnoha uživatelům pomáhá při psaní robustních úryvků kódu.

Itoa je dále široce používaná nestandardní funkce, která funguje jako převodník datových typů. Jako vstup bere datový typ int a převádí jej na řetězec. Mnoho z vás však jeho použití nezná. Proto tato příručka stručně vysvětluje, jak bez problémů používat funkci itoa v C.







Jak používat funkci Itoa v C

Začněme základy. Zde je jednoduchá syntaxe funkce itoa:



int hlavní ( ) {

int na jednom = 12345 ;
char str [ dvacet ] ;
utopil ( na jednom , str , 10 ) ;
printf ( 'Celé číslo: %d.' \n Řetězec: %s \n ' , na jednom , str ) ;
vrátit se 0 ;


}

V daném programu jsou podrobnosti následující:



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

Nyní pojďme vpřed, napišme program a implementujme funkci itoa. Potřebujeme například napsat program, který změní zadaná čísla na řetězec.





#include

#include

prázdnota utopil ( int na jednom , char * str , int základna ) {

int i = 0 ;
int je Negativní = 0 ;

-li ( na jednom == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
vrátit se ;
}


-li ( na jednom < 0 && základna != 10 ) {

je Negativní = 1 ;
na jednom = - na jednom ;
}

zatímco ( na jednom != 0 ) {
int rem = na jednom % základna ;

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

na jednom = na jednom / základna ;
}

-li ( je Negativní && základna == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int Start = 0 ;
int konec = i - 1 ;


zatímco ( Start < konec ) {

char tepl = str [ Start ] ;
str [ Start ] = str [ konec ] ;
str [ konec ] = tepl ;
Start ++;
konec --;
}
}

int hlavní ( ) {
int na jednom ;
printf ( 'Zadejte celé číslo: ' ) ;

-li ( scanf ( '%d' , & na jednom ) != 1 ) {
fprintf ( stderr , 'Neplatný vstup. Zadejte celé číslo.' \n ' ) ;
vrátit se EXIT_FAILURE ;
}

int max_size = snprintf ( NULA , 0 , '%d' , na jednom ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;

-li ( str == NULA ) {
fprintf ( stderr , 'Alokace paměti se nezdařila \n ' ) ;
vrátit se EXIT_FAILURE ;
}


utopil ( na jednom , str , 10 ) ;

printf ( 'Celé číslo: %d.' \n Řetězec: %s \n ' , na jednom , str ) ;

volný, uvolnit ( str ) ;

vrátit se 0 ;


}

V předchozím programu je itoa (int num, char *str, int základ) funkcí itoa. Navíc následující syntaxe přímo přiřadí nulu výsledku, když je vstupní číslo také nula:

-li ( na jednom == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
vrátit se ;


}

Když je vstupní číslo záporné a základ také není 10, následující řádky programu nastaví záporný příznak:



-li ( na jednom < 0 && základna != 10 ) {

je Negativní = 1 ;
na jednom = - na jednom ;

Následující smyčka zpracuje všechny číslice a převede je na odpovídající znak. Proto pro základy, které jsou větší než 10, program používá písmena „a“ až „f“ pro číslice 10 až 15.

}

zatímco ( na jednom != 0 ) {

int rem = na jednom % základna ;

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

na jednom = na jednom / základna ;

}

Když je číslo původně záporné a základ je 10, program k výslednému řetězci připojí záporné znaménko.

-li ( je Negativní && základna == 10 )

str [ i ++ ] = '-' ;

Následující řádky ukončí výsledný řetězec a poté jej obrátí, protože číslice jsou během procesu převodu získány v opačném pořadí:

str [ i ] = ' \0 ' ;

// Obrátit řetězec

int Start = 0 ;

int konec = i - 1 ;

zatímco ( Start < konec ) {

char tepl = str [ Start ] ;
str [ Start ] = str [ konec ] ;
str [ konec ] = tepl ;
Start ++;
konec --;


}

Program tedy bere celé číslo jako vstup a přiděluje paměť pro reprezentaci řetězce. Poté zavolá itoa, aby převedl celé číslo na řetězec a vytiskne původní celé číslo. Nakonec uvolní přidělenou paměť. Řekněme například číslo programu:

Pokud však zadáte jiné než celé číslo, program zobrazí následující výsledek:

Závěr

Takto můžete snadno implementovat a používat funkci itoa v C. Použili jsme podrobný příklad, který obsahuje více funkcí pro převod celého čísla na řetězec. Pamatujte, že je to pouze příklad, ale můžete kombinovat funkci itoa s různými funkcemi a psát úžasné programy.