Konwersja jednego typu danych w inny jest potrzebny do wielu różnych celów. A jeśli masz dostępne przydatne wbudowane funkcje, możesz łatwo konwertować dane z jednego typu na inny. Język programowania C ++ oferuje listę różnych wbudowanych funkcji, których można użyć do konwersji typu danych. Ten artykuł ma na celu poznanie jednej z tych funkcji konwersji. Tutaj zilustrujemy działanie funkcji Stoll w języku C ++.
Co to jest funkcja Stoll w języku programowania C ++?
Funkcja Stoll to wbudowana funkcja C ++ dostarczona przez standardową bibliotekę C ++ w celu przekonwertowania ciągu na długą długą int. Bierze ciąg wejściowy, oblicza długą długą wartość INT i zwraca obliczoną wartość. Ustawia wskaźnik na pierwszej postaci sznurka, iterując każdą postać przyrostową o jeden i dociera do ostatniej postaci.
Składnia funkcji Stoll
Składnia Stoll jest następująca:
Funkcja Stoll ma trzy parametry: ciąg, indeks i podstawa. Ciąg wejściowy, który ma zostać przekształcony w wartość liczb całkowitą, jest zawarty w parametrze „String”. Parametr „indeksowy” jest wskaźnikiem obiektu używanego do śledzenia pozycji następnego znaku. Może to być wskaźnik zerowy, gdy nie jest potrzebny. Wartość podstawowa, w której łańcuch będzie analizowany, jest przechowywana w parametrze końcowym, zwany „podstawą”. Domyślnie wartość podstawowa wynosi 10, a 0 wartość bazowa określa podstawę według formatu ciągu. Zwraca przekonwertowaną wartość całkowitą w postaci długiej długiej int. Zrozumiemy działanie Stoll z przykładami podanymi poniżej:
Przykład 1
Pierwszy przykład funkcji Stoll ilustruje podstawową funkcję funkcji Stoll. Tutaj podano prosty i łatwy program, dzięki czemu nie masz problemu ze zrozumieniem funkcji. Zobacz następujący kod i zrozum wiersze kodu krok po kroku:
#włączać
za pomocą przestrzeni nazw Std;
int main ()
długi int d, h, b;
String Dec = "123456";
String hex = "ffffff";
String bin = "101010";
D = Stoll (dec, nullptr, 10);
H = Stoll (Hex, Nullptr, 16);
B = Stoll (bin, nullptr, 2);
Cout << dec<<" **Decimal conversion** " << d <Cout < Cout << bin<<" **Binary conversion** " << b < powrót 0;
Program rozpoczyna się od pliku nagłówka, który obejmuje wszystkie standardowe narzędzia biblioteczne wymagane dla ogólnego programu C ++. „Używając przestrzeni nazw STD;” pozwala uwzględnić standardową funkcję wejściową i wyjściową do wykonania określonego zadania. Cały program jest napisany w głównej funkcji.
Tutaj zmienne są zadeklarowane, a wartości są im przypisane. Strings, które należy przekształcić, są przechowywane w zmiennych „dec”, „heks” i „bin”. Zmienne D, H i B będą utrzymywać konwertowany ciąg w postaci długiej długiej int.
Tutaj parametry są przekazywane do funkcji Stoll. Do konwersji ciągu dziesiętnego podano podstawę 10. W celu przekształcenia sznurka heksadecimalnego podano podstawę 16 i do przekształcenia sznurka binarnego, podana jest baza 2.
Korzystając z instrukcji Cout, każdy ciąg i jego przekonwertowane wartości całkowitej są drukowane. Instrukcja zwrotu 0 jest dodawana na końcu programu, aby upewnić się, że wykonanie zostało pomyślnie wykonane. Jest to opcjonalne stwierdzenie, które można pominąć.
Przejrzyjmy każdy przekonwertowany ciąg w wyniku podanym poniżej:
Przykład 2
Przetestujmy funkcję STOLL z nieprawidłowym wejściem. Kompilator rzuca błąd lub podnosi wyjątek, jeże. Jeśli wykonanie nie można wykonać, kompilator rzuci nieprawidłowy wyjątek argumentu. Jeśli nie można wykonać konwersji z powodu wartości wejściowej poza zasięgiem, kompilator rzuci wyjątek poza zasięgiem. Zrozumiemy cały ten scenariusz z prostym przykładem:
#włączać
za pomocą przestrzeni nazw Std;
int main ()
String str = "ABCD!~ $#@de ";
próbować
Cout << stoll(str) << "\n";
catch (const std :: invalid_argument)
Cerr << "Invalid argument" << "\n";
powrót 0;
Ciąg zawierający znak specjalny jest dostarczany jako ciąg wejściowy do konwersji za pomocą funkcji Stoll. Funkcja Stoll nie może konwertować znaków specjalnych ogólnych danych. Podnosi nieprawidłowy wyjątek argumentu.
Konwersja Stoll jest wykonywana w bloku „spróbuj”. Jeśli nie można zakończyć konwersji, to zostanie podniesiony wyjątek „nieprawidłowy argument” w bloku „Catch”.
Oto następujące dane wyjściowe:
W przypadku nieprawidłowego ciągu wejściowego Stoll nie może wykonać swojej funkcji i rzuci wyjątek.
Przykład 3
Teraz przetestujmy funkcję STOLL z mieszaniną prawidłowego i nieprawidłowego ciągu wejściowego. Tutaj zapewnimy kombinację prawidłowych i nieprawidłowych ciągów funkcji Stoll, aby zobaczyć działanie funkcji Stoll.
#włączać
za pomocą przestrzeni nazw Std;
int main ()
String str = „123456789 0xffff 010”;
String :: size_type sz = 0;
chwila (!str.pusty())
długi LL = Stoll (str, i sz, 0);
STD :: Cout << str.substr(0,sz) << “ converted as “ << ll << '\n';
str = str.substr (SZ);
powrót 0;
Ciąg zawiera trzy elementy oddzielone przestrzenią. Złamamy każdy element na jeden osobny ciąg i przekonwertujemy każdy z nich jeden po drugim. Łańcuch jest iterowany, a każdy element jest przekonwertowany niezależnie za pomocą pętli „while”. Funkcja Substring () dzieli ciąg na różne elementy lub części. Podano podstawę 0, aby kompilator automatycznie określił podstawę konwersji, sprawdzając format danych wejściowych.
Pierwszy element „123456789” jest liczbą dziesiętną, więc zostanie przekonwertowany na liczbę dziesiętną przy użyciu podstawy 10. Przekształcenie dziesiętne „123456789” powinno wynosić „123456789”. Drugi element „0xffff” to mieszanka liczb liczb całkowitych, sznurków i szesnastkowych. Funkcja Stoll ignoruje nieprawidłowe znaki w ciągu i obliczy konwersję prawidłowego ciągu.
Na przykład „0x” w ciągu zostanie zignorowane, a konwersja „FFFF” zostanie wykonana. Funkcja Stoll automatycznie określi podstawę konwersji z formatu danych. „FFFF” jest liczbą całkowitą z serii szesnastkowych, więc funkcja Stoll wykorzysta podstawę 16 do konwersji ciągu. A ostatni element „010” jest ponownie numerem całkowitym, więc funkcja Stoll użyje 10 do konwersji ciągu dziesiętnego na liczbę całkowitą dziesiętną. Konwertowany ciąg „010” powinien być liczbą całkowitą „010”. Zobaczmy dane wyjściowe podane poniżej:
Wniosek
Mieliśmy szybki przegląd funkcji Stoll. Za pomocą przykładów nauczyliśmy się użycia funkcji Stoll w języku programowania C ++. W tym przewodniku przedstawiono trzy unikalne przykłady wraz z wyjaśnieniem kodu.