Kuidas kasutada Itoa funktsiooni C-s

Kuidas Kasutada Itoa Funktsiooni C S



Programmeerimiskeel C käivitati üle viie aastakümne tagasi. Sellest ajast alates on see programmeerimismaailmas tohutult populaarseks saanud. See paistab teistest keeltest silma tänu oma omadustele, sealhulgas struktuurilisele lihtsusele, funktsioonidele, teisaldatavusele, tõhusale mäluhaldusele jne. Vaatamata mitmetele muudele funktsioonidele on C-i funktsioonid kõige silmapaistvamad varad, mis aitavad paljudel kasutajatel tugevaid koodijuppe kirjutada.

Lisaks on itoa laialdaselt kasutatav mittestandardne funktsioon, mis toimib andmetüübi muundurina. See võtab sisendiks andmetüübi int ja teisendab selle stringiks. Kuid paljud teist ei tea selle kasutamist. Seetõttu selgitab see juhend lühidalt, kuidas itoa funktsiooni C-s ilma probleemideta kasutada.







Kuidas kasutada Itoa funktsiooni C-s

Alustame põhitõdedest. Siin on funktsiooni itoa lihtne süntaks:



int peamine ( ) {

int ühel = 12345 ;
char str [ kakskümmend ] ;
uppus ( ühel , str , 10 ) ;
printf ( 'Täisarv: %d \n String: %s \n ' , ühel , str ) ;
tagasi 0 ;


}

Antud programmis on üksikasjad järgmised:



  1. num on täisarv
  2. str on tegelane
  3. 10 on bass

Nüüd liigume edasi, kirjutame programmi ja rakendame itoa funktsiooni. Näiteks peame kirjutama programmi sisestatud numbrite stringiks muutmiseks.





#include

#include

tühine uppus ( int ühel , char * str , int alus ) {

int i = 0 ;
int on negatiivne = 0 ;

kui ( ühel == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
tagasi ;
}


kui ( ühel < 0 && alus != 10 ) {

on negatiivne = 1 ;
ühel = - ühel ;
}

samal ajal ( ühel != 0 ) {
int rem = ühel % alus ;

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

ühel = ühel / alus ;
}

kui ( on negatiivne && alus == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int alustada = 0 ;
int lõpp = i - 1 ;


samal ajal ( alustada < lõpp ) {

char temp = str [ alustada ] ;
str [ alustada ] = str [ lõpp ] ;
str [ lõpp ] = temp ;
alustada ++;
lõpp --;
}
}

int peamine ( ) {
int ühel ;
printf ( 'Sisestage täisarv:' ) ;

kui ( scanf ( '%d' , & ühel ) != 1 ) {
fprintf ( stderr , 'Vigane sisestus. Sisestage täisarv. \n ' ) ;
tagasi EXIT_FAILURE ;
}

int max_size = snprintf ( NULL , 0 , '%d' , ühel ) + 1 ;
char * str = ( char * ) malloc ( max_size ) ;

kui ( str == NULL ) {
fprintf ( stderr , 'Mälu eraldamine ebaõnnestus \n ' ) ;
tagasi EXIT_FAILURE ;
}


uppus ( ühel , str , 10 ) ;

printf ( 'Täisarv: %d \n String: %s \n ' , ühel , str ) ;

tasuta ( str ) ;

tagasi 0 ;


}

Eelmises programmis on itoa (int num, char *str, int base) itoa funktsioon. Lisaks määrab järgmine süntaks tulemusele otse nulli, kui sisendnumber on samuti null:

kui ( ühel == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
tagasi ;


}

Kui sisendarv on negatiivne ja alus ei ole samuti 10, seavad järgmised programmiread negatiivse lipu:



kui ( ühel < 0 && alus != 10 ) {

on negatiivne = 1 ;
ühel = - ühel ;

Järgmine tsükkel töötleb kõiki numbreid ja teisendab need vastavaks märgiks. Seega kasutab programm aluste puhul, mis on suuremad kui 10, tähti 'a' kuni 'f' numbrite 10 kuni 15 jaoks.

}

samal ajal ( ühel != 0 ) {

int rem = ühel % alus ;

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

ühel = ühel / alus ;

}

Kui arv on algselt negatiivne ja alus on 10, lisab programm tulemuse stringile negatiivse märgi.

kui ( on negatiivne && alus == 10 )

str [ i ++ ] = '-' ;

Järgmised read lõpetavad tulemuse stringi ja pööravad selle seejärel ümber, kuna numbrid saadakse teisendusprotsessi käigus vastupidises järjekorras:

str [ i ] = ' \0 ' ;

// Keerake string ümber

int alustada = 0 ;

int lõpp = i - 1 ;

samal ajal ( alustada < lõpp ) {

char temp = str [ alustada ] ;
str [ alustada ] = str [ lõpp ] ;
str [ lõpp ] = temp ;
alustada ++;
lõpp --;


}

Seetõttu võtab programm sisendiks täisarvu ja eraldab stringi esituse jaoks mälu. Pärast seda kutsub see täisarvu stringiks teisendamiseks välja itoa ja prindib algse täisarvu. Lõpuks vabastab see eraldatud mälu. Näiteks anname programmile numbri:

Kui aga sisestate mittetäisarvu, näitab programm järgmist tulemust:

Järeldus

Nii saate hõlpsasti rakendada ja kasutada funktsiooni itoa C-s. Täisarvu stringiks teisendamiseks kasutasime üksikasjalikku näidet, mis sisaldab mitut funktsiooni. Pidage meeles, et see on vaid näide, kuid imeliste programmide kirjutamiseks võite kombineerida funktsiooni itoa erinevate funktsioonidega.