Cum se utilizează funcția Itoa în C

Cum Se Utilizeaza Functia Itoa In C



Limbajul de programare C a fost lansat acum peste cinci decenii. De atunci, a câștigat o popularitate imensă în lumea programării. Se remarcă pe celelalte limbi datorită caracteristicilor sale, inclusiv simplitatea structurală, funcțiile, portabilitatea, gestionarea eficientă a memoriei etc. În ciuda faptului că au diverse alte caracteristici, funcțiile din C sunt cele mai importante active care ajută mulți utilizatori să scrie fragmente de cod robuste.

În plus, itoa este o funcție non-standard utilizată pe scară largă care acționează ca un convertor de tip de date. Acesta ia tipul de date int ca intrare și îl convertește într-un șir. Cu toate acestea, mulți dintre voi nu îi cunoașteți utilizarea. Prin urmare, acest ghid explică concis cum să utilizați funcția itoa în C fără bătăi de cap.







Cum să utilizați funcția Itoa în C

Să începem cu elementele de bază. Iată sintaxa simplă pentru funcția itoa:



int principal ( ) {

int pe unu = 12345 ;
char str [ douăzeci ] ;
înecat ( pe unu , str , 10 ) ;
printf ( „Număr întreg: %d \n Siruri de caractere \n ' , pe unu , str ) ;
întoarcere 0 ;


}

În programul dat, detaliile sunt următoarele:



  1. num este numărul întreg
  2. str este caracterul
  3. 10 este basul

Acum, să mergem mai departe, să scriem un program și să implementăm funcția itoa. De exemplu, trebuie să scriem un program pentru a schimba numerele introduse în șir.





#include

#include

gol înecat ( int pe unu , char * str , int baza ) {

int i = 0 ;
int este Negativ = 0 ;

dacă ( pe unu == 0 ) {
str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
întoarcere ;
}


dacă ( pe unu < 0 && baza != 10 ) {

este Negativ = 1 ;
pe unu = - pe unu ;
}

in timp ce ( pe unu != 0 ) {
int rem = pe unu % baza ;

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

pe unu = pe unu / baza ;
}

dacă ( este Negativ && baza == 10 )
str [ i ++ ] = '-' ;

str [ i ] = ' \0 ' ;

int start = 0 ;
int Sfârşit = i - 1 ;


in timp ce ( start < Sfârşit ) {

char temp = str [ start ] ;
str [ start ] = str [ Sfârşit ] ;
str [ Sfârşit ] = temp ;
start ++;
Sfârşit --;
}
}

int principal ( ) {
int pe unu ;
printf ( 'Introduceți un număr întreg: ' ) ;

dacă ( scanf ( „%d” , & pe unu ) != 1 ) {
fprintf ( stderr , „Introducere nevalidă. Introduceți un număr întreg. \n ' ) ;
întoarcere EXIT_FAILURE ;
}

int dimensiune_max = snprintf ( NUL , 0 , „%d” , pe unu ) + 1 ;
char * str = ( char * ) malloc ( dimensiune_max ) ;

dacă ( str == NUL ) {
fprintf ( stderr , „Alocarea memoriei a eșuat \n ' ) ;
întoarcere EXIT_FAILURE ;
}


înecat ( pe unu , str , 10 ) ;

printf ( „Număr întreg: %d \n Siruri de caractere \n ' , pe unu , str ) ;

gratuit ( str ) ;

întoarcere 0 ;


}

În programul anterior, itoa (int num, char *str, int bază) este funcția itoa. Mai mult, următoarea sintaxă atribuie direct zero rezultatului atunci când numărul de intrare este, de asemenea, zero:

dacă ( pe unu == 0 ) {

str [ i ++ ] = '0' ;
str [ i ] = ' \0 ' ;
întoarcere ;


}

Când numărul de intrare este negativ și baza nu este, de asemenea, 10, următoarele linii de program vor seta indicatorul negativ:



dacă ( pe unu < 0 && baza != 10 ) {

este Negativ = 1 ;
pe unu = - pe unu ;

Următoarea buclă procesează toate cifrele și le convertește într-un caracter corespunzător. Prin urmare, pentru bazele care sunt mai mari de 10, programul folosește literele „a” la „f” pentru cifrele de la 10 la 15.

}

in timp ce ( pe unu != 0 ) {

int rem = pe unu % baza ;

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

pe unu = pe unu / baza ;

}

Când numărul este inițial negativ și baza este 10, programul va adăuga semnul negativ unui șir de rezultat.

dacă ( este Negativ && baza == 10 )

str [ i ++ ] = '-' ;

Următoarele linii termină șirul rezultat și apoi îl inversează pe măsură ce cifrele sunt obținute în ordine inversă în timpul procesului de conversie:

str [ i ] = ' \0 ' ;

// Inversați șirul

int start = 0 ;

int Sfârşit = i - 1 ;

in timp ce ( start < Sfârşit ) {

char temp = str [ start ] ;
str [ start ] = str [ Sfârşit ] ;
str [ Sfârşit ] = temp ;
start ++;
Sfârşit --;


}

Prin urmare, programul ia numărul întreg ca intrare și alocă memoria pentru reprezentarea șirului. După aceea, apelează itoa pentru a converti întregul în șir și tipărește întregul original. În cele din urmă, eliberează memoria alocată. De exemplu, să dăm un număr programului:

Cu toate acestea, dacă introduceți un număr care nu este întreg, programul va afișa următorul rezultat:

Concluzie

Acesta este modul în care puteți implementa și utiliza cu ușurință funcția itoa în C. Am folosit un exemplu detaliat care conține mai multe funcții pentru a converti întregul în șir. Amintiți-vă, este doar un exemplu, dar puteți combina funcția itoa cu diverse funcții pentru a scrie programe uimitoare.