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:
- num este numărul întreg
- str este caracterul
- 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.