Jak korzystać z funkcji Itoa w C

Jak Korzystac Z Funkcji Itoa W C



Język programowania C powstał ponad pięćdziesiąt lat temu. Od tego czasu zyskał ogromną popularność w świecie programowania. Wyróżnia się na tle innych języków ze względu na swoje cechy, w tym prostotę strukturalną, funkcje, przenośność, wydajne zarządzanie pamięcią itp. Pomimo posiadania różnych innych funkcji, funkcje w C są najważniejszymi zaletami, które pomagają wielu użytkownikom w pisaniu solidnych fragmentów kodu.

Co więcej, itoa jest szeroko stosowaną niestandardową funkcją, która działa jako konwerter typów danych. Jako dane wejściowe pobiera typ danych int i konwertuje go na ciąg znaków. Jednak wielu z Was nie zna jego zastosowania. Dlatego ten przewodnik zwięźle wyjaśnia, jak bezproblemowo korzystać z funkcji itoa w C.







Jak korzystać z funkcji Itoa w C

Zacznijmy od podstaw. Oto prosta składnia funkcji itoa:



wew główny ( ) {

wew na jednego = 12345 ;
zwęglać ul [ 20 ] ;
utonął ( na jednego , ul , 10 ) ;
drukuj ( „Liczba całkowita: %d \N Ciąg: %s \N ' , na jednego , ul ) ;
powrót 0 ;


}

W danym programie szczegóły przedstawiają się następująco:



  1. liczba jest liczbą całkowitą
  2. str to znak
  3. 10 to bas

Przejdźmy teraz dalej, napiszmy program i zaimplementujmy funkcję itoa. Przykładowo musimy napisać program zamieniający wprowadzone liczby na ciąg znaków.





#include

#include

próżnia utonął ( wew na jednego , zwęglać * ul , wew baza ) {

wew I = 0 ;
wew jestujemne = 0 ;

Jeśli ( na jednego == 0 ) {
ul [ I ++ ] = „0” ;
ul [ I ] = ' \0 ' ;
powrót ;
}


Jeśli ( na jednego < 0 && baza != 10 ) {

jestujemne = 1 ;
na jednego = - na jednego ;
}

chwila ( na jednego != 0 ) {
wew rem = na jednego % baza ;

ul [ I ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + „0” ;

na jednego = na jednego / baza ;
}

Jeśli ( jestujemne && baza == 10 )
ul [ I ++ ] = „-” ;

ul [ I ] = ' \0 ' ;

wew początek = 0 ;
wew koniec = I - 1 ;


chwila ( początek < koniec ) {

zwęglać temp = ul [ początek ] ;
ul [ początek ] = ul [ koniec ] ;
ul [ koniec ] = temp ;
początek ++;
koniec --;
}
}

wew główny ( ) {
wew na jednego ;
drukuj ( 'Wprowadź liczbę całkowitą: ' ) ;

Jeśli ( skanf ( '%D' , & na jednego ) != 1 ) {
fprintf ( stderr , „Nieprawidłowe dane wejściowe. Proszę wprowadzić liczbę całkowitą. \N ' ) ;
powrót WYJŚCIE_BŁĄD ;
}

wew największy rozmiar = snprintf ( ZERO , 0 , '%D' , na jednego ) + 1 ;
zwęglać * ul = ( zwęglać * ) malloc ( największy rozmiar ) ;

Jeśli ( ul == ZERO ) {
fprintf ( stderr , „Alokacja pamięci nie powiodła się \N ' ) ;
powrót WYJŚCIE_BŁĄD ;
}


utonął ( na jednego , ul , 10 ) ;

drukuj ( „Liczba całkowita: %d \N Ciąg: %s \N ' , na jednego , ul ) ;

bezpłatny ( ul ) ;

powrót 0 ;


}

W poprzednim programie itoa (int num, char *str, int base) jest funkcją itoa. Co więcej, poniższa składnia bezpośrednio przypisuje zero do wyniku, gdy liczba wejściowa również wynosi zero:

Jeśli ( na jednego == 0 ) {

ul [ I ++ ] = „0” ;
ul [ I ] = ' \0 ' ;
powrót ;


}

Gdy liczba wejściowa jest ujemna, a podstawa również nie wynosi 10, następujące linie programu ustawią flagę ujemną:



Jeśli ( na jednego < 0 && baza != 10 ) {

jestujemne = 1 ;
na jednego = - na jednego ;

Następująca pętla przetwarza wszystkie cyfry i konwertuje je na odpowiedni znak. Dlatego w przypadku zasad większych niż 10 program używa liter „a” do „f” dla cyfr od 10 do 15.

}

chwila ( na jednego != 0 ) {

wew rem = na jednego % baza ;

ul [ I ++ ] = ( rem > 9 ) ? ( rem - 10 ) + 'A' : rem + „0” ;

na jednego = na jednego / baza ;

}

Jeśli początkowo liczba jest ujemna, a jej podstawą jest 10, program doda znak ujemny do ciągu wynikowego.

Jeśli ( jestujemne && baza == 10 )

ul [ I ++ ] = „-” ;

Poniższe linie kończą ciąg wynikowy, a następnie odwracają go, ponieważ cyfry są uzyskiwane w odwrotnej kolejności podczas procesu konwersji:

ul [ I ] = ' \0 ' ;

// Odwróć ciąg

wew początek = 0 ;

wew koniec = I - 1 ;

chwila ( początek < koniec ) {

zwęglać temp = ul [ początek ] ;
ul [ początek ] = ul [ koniec ] ;
ul [ koniec ] = temp ;
początek ++;
koniec --;


}

Dlatego program przyjmuje liczbę całkowitą jako dane wejściowe i przydziela pamięć na reprezentację łańcuchową. Następnie wywołuje itoa w celu konwersji liczby całkowitej na ciąg znaków i wypisuje pierwotną liczbę całkowitą. Na koniec zwalnia przydzieloną pamięć. Przykładowo nadajmy numer programowi:

Jeśli jednak wpiszesz liczbę niecałkowitą, program wyświetli następujący wynik:

Wniosek

W ten sposób możesz łatwo zaimplementować i używać funkcji itoa w C. Użyliśmy szczegółowego przykładu zawierającego wiele funkcji do konwersji liczby całkowitej na ciąg znaków. Pamiętaj, to tylko przykład, ale możesz połączyć funkcję itoa z różnymi funkcjami, aby pisać niesamowite programy.