C ++ jest jednym z najpopularniejszych i najstarszych języków programowania używanych do opracowywania aplikacji o wysokiej wydajności. Jest stosowany wśród wysoce ekspertów i początkujących programistów. Jest używany głównie w tworzeniu gier i jest idealną opcją do opracowywania systemów operacyjnych. Pisząc kod w języku C ++, możesz natknąć się na konwersję danych z jednego typu na inny. W tym artykule nauczysz się konwertować ciąg na długą liczbę całkowitą. Trudno jest przekonwertować ciąg na dowolny inny format. Jednak język programowania C ++ zapewnia szybki i wydajny sposób konwersji ciągów na liczby całkowite.
Funkcja STOL w C++
STOL to wbudowana funkcja C ++ podana w bibliotece STD. Przekształca struny na długie liczby całkowite. Przekształca zawartość ciągu w liczbę całkowitą określonej bazy i zwraca długą wartość liczb całkowitą. Wymaga trzech parametrów, jeden to ciąg wejściowy, drugi to parametr obiektu, a trzecia to podstawa numeryczna. Składnia funkcji STOL jest podana poniżej, wyglądaj:
Funkcja STOL bierze trzy parametry: Input_String, rozmiar i podstawa. „Input_String” reprezentuje ciąg wejściowy, który należy przekonwertować na długą liczbę liczb całkowitą.
Parametr „Rozmiar” reprezentuje obiekt typu size_t, który przenosi następną pozycję znaku w ciągu wejścia po wartości numerycznej. Może to być wskaźnik zerowy, jeśli nie jest wymagany.
Trzeci parametr, parametr „podstawowy” reprezentuje podstawę, w której ciąg należy interpretować. Na przykład, jeśli podana jest baza „2”, ciąg będzie interpretowany jako liczba bazy całkowitej. Wartość domyślna parametru podstawowego wynosi 10, a jeśli 0 zostanie dostarczone, wartość podstawowa zostanie określona przez format w sekwencji. Funkcja STOL zwraca długą liczbę liczbową reprezentującą wartość INT danego ciągu.
Teraz zbadajmy kilka przykładów, aby zrozumieć, jak działa funkcja STOL w C++.
Przykład 1
W tym przykładzie zapewnimy ciągi dziesiętne i szesnastkowe, aby sprawdzić, w jaki sposób funkcja STOL przekształca je w liczby liczb całkowitych dziesiętnych i szesnastkowych.
„DEC = 123456789” to ciąg dziesiętny i przekonwertowany na długą liczbę całkowitą za pomocą funkcji STOL STOL (dec i rozmiar). Należy zauważyć, że podstawa nie jest podana w funkcji jako parametr wejściowy, który w wyniku wykorzystuje domyślną bazę 10 do konwersji ciągu na liczbę dziesiętną. Jednak w przypadku konwersji sznurka z liczby szesnastkowej na liczbę dziesiętną, podstawa 16 jest dostarczana jako parametr wejściowy STOL (Hex, Nullptr, 16). Jak wiemy, 16 bazy reprezentuje liczbę szesnastkową.
#włączać
#włączać
#włączać
int main ()
std :: String dec = "123456789";
std :: String hex = "a2bf3c";
STD :: String :: size_type rozmiar;
długie lidec = std :: stol (dec i rozmiar);
długie lihex = std :: stol (hex, nullptr, 16);
STD :: Cout << "Input decimal string "<STD :: Cout << "Input hexadecimal string "< powrót 0;
Oto następujące dane wyjściowe. Zauważ, że ciągu dziesiętnym „123456789” przekonwertowany na długą liczbę całkowitą „123456789”. Podczas gdy sześciokadciowy ciąg „A2BF3C” przekonwertowany na numer heksadecimalny „10665788”. Oto wymagane kroki, których możesz zastosować, aby dowiedzieć się, w jaki sposób konwersja odbywa się przez funkcję STOL:
(A2BF3C) ₁₆ = (10 × 16⁵) + (2 × 16⁴) + (11 × 16³) + (15 × 16²) + (3 × 16¹) + (12 × 16⁰) = (10665788) ₁₀
Przykład nr 2
W tym przykładzie przekonwertujemy liczbę binarną za pomocą funkcji STOL. Zobaczmy poniższy kod i zrozumiemy działanie kodu. „1010110110” jest podawany jako ciąg wejściowy, a podstawa 2 jest podawana jako parametr bazowy wejściowej STOL (BIN i rozmiar, 2), reprezentujący liczbę w formacie binarnym. Funkcja STOL przekonwertuje numer binarny na liczbę dziesiętną, wykonując następujące kroki:
(1010110110) ₂ = (1 × 2⁹) + (0 × 2⁸) + (1 × 2⁷) + (0 × 2⁶) + (1 × 2⁵) + (1 × 2⁴) + (0 × 23) + (1 × 2²) + (1 × 2¹) + (0 × 2⁰) = (694) ₁₀
#włączać
#włączać
#włączać
int main ()
std :: String bin = "1010110110";
STD :: String :: size_type rozmiar;
długie libin = std :: stol (bin i rozmiar, 2);
STD :: Cout << "Input binary string "<powrót 0;
Jak widać, że funkcja STOL zwróciła ten sam wynik, co ogólny proces konwersji binarny do dziesiętnego.
Przykład nr 3
W tym przykładzie zobaczymy, co się stanie, jeśli przetestujemy funkcję STOL z nieprawidłowym wejściem. Do funkcji STOL zostanie dostarczone ciąg wielu znaków, a 0 zostanie dostarczone jako wartość podstawowa, aby funkcja automatycznie określała podstawę łańcucha. Oto kod:
Zestaw znaków jest dostarczany jako ciąg wejściowy, który nie jest określany przez żadne wartości podstawowe, i.mi., 10, 16, 2 itp. więc funkcja zwróci wartość błędu.
#włączać
#włączać
#włączać
int main ()
std :: string chr = "abcDefgh";
STD :: String :: size_type rozmiar;
długie str = std :: stol (chr, nullptr, 0);
STD :: Cout << "Input character string "<powrót 0;
Zobacz dane wyjściowe poniżej. Zauważ, że kompilator podniósł wyjątek „Invalid_argument”, ponieważ funkcja nie zaspokaja ciągów, których nie można określić z żadną wartością podstawową.
Przykład nr 4
W tym przykładzie zapewnimy kombinację prawidłowych i nieprawidłowych danych wejściowych, aby zobaczyć wynik funkcji stol ().
String wejściowy jest kombinacją prawidłowych i nieprawidłowych znaków, „123XF25”. „0” ISG podany jako podstawa wejściowa, tak aby funkcja automatycznie określa podstawę ciągu wejściowego na podstawie typu znaków.
#włączać
#włączać
#włączać
int main ()
std :: String Chr = "123xf25";
STD :: String :: size_type rozmiar;
długie str = std :: stol (chr, nullptr, 0);
STD :: Cout << "Input string "<powrót 0;
Oto dane wyjściowe, które pokazuje funkcję STOL z kombinacją prawidłowego i nieprawidłowego wejścia:
Zauważ, że funkcja przekonwertowała „123” na liczbę dziesiętną „123” i odrzuciła resztę ciągu, ponieważ otrzymała nieprawidłowe wejście „x”. Ciąg po znaku „x” nie jest konwertowany przez funkcję STOL, zwracając tylko pierwsze znaki ciągów, tak długie int.
Wniosek
W tym poście badaliśmy funkcję STOL w języku programowania C ++. Za pomocą niektórych przydatnych i prostych przykładów dowiedzieliśmy się, jak działa funkcja STOL z różnymi rodzajami danych wejściowych. Funkcja STOL bierze trzy parametry, ciąg wejściowy, który ma zostać przekonwertowany, parametr wielkości, który reprezentuje pozycję funkcji w ciągu, oraz wartość podstawową reprezentującą podstawę ciągu wejściowego ciągu. Zwraca długą wartość INT ciągu wejściowego.