Funkcja Stol() w C++

Funkcja Stol W C



C++ to jeden z najpopularniejszych i najstarszych języków programowania używanych do tworzenia aplikacji o wysokiej wydajności. Jest używany wśród wysoce doświadczonych programistów i początkujących programistów. Jest używany głównie w tworzeniu gier i jest idealną opcją do tworzenia systemów operacyjnych. Pisząc kod w języku C++ możesz natknąć się na konwertowanie danych z jednego typu na inny. W tym artykule nauczysz się konwertować łańcuch na długą liczbę całkowitą. Przekonwertowanie ciągu na inny format jest dość trudne. Jednak język programowania C++ zapewnia szybki i wydajny sposób konwertowania ciągów na liczby całkowite.

stol Funkcja w C++

Stol jest wbudowaną funkcją C++ dostępną w bibliotece std. Konwertuje ciągi na długie liczby całkowite. Konwertuje zawartość ciągu na liczbę całkowitą o określonej podstawie i zwraca długą wartość całkowitą. Przyjmuje trzy parametry, jeden to ciąg wejściowy, drugi to parametr obiektu, a trzeci to podstawa liczbowa. Składnia funkcji stol jest podana poniżej, spójrz:









Funkcja stol przyjmuje trzy parametry: input_string, size i base. „input_string” reprezentuje ciąg wejściowy, który należy przekonwertować na długą liczbę całkowitą.



Parametr „rozmiar” reprezentuje obiekt typu size_t, który przenosi kolejną pozycję znaku w ciągu wejściowym po wartości liczbowej. Może to być wskaźnik zerowy, jeśli nie jest wymagany.





Trzeci parametr, parametr „podstawa”, reprezentuje podstawę, w której ciąg ma być interpretowany. Na przykład, jeśli zostanie podana podstawa „2”, łańcuch zostanie zinterpretowany jako liczba całkowita o podstawie 2. Domyślna wartość parametru podstawowego wynosi 10, a jeśli podano 0, wartość podstawowa zostanie określona przez format w sekwencji. Funkcja stol zwraca długą liczbę całkowitą reprezentującą wartość int danego ciągu.

Przyjrzyjmy się teraz kilku przykładom, aby zrozumieć, jak działa funkcja stol w C++.



Przykład 1

W tym przykładzie przedstawimy ciągi dziesiętne i szesnastkowe, aby sprawdzić, jak funkcja stol konwertuje je na liczby całkowite dziesiętne i szesnastkowe.

„dec = 123456789” to ciąg dziesiętny, który jest konwertowany na długą liczbę całkowitą za pomocą funkcji stol stol(dec,&size). Zauważ, że podstawa nie jest dostarczana w funkcji jako parametr wejściowy, który w rezultacie używa domyślnej podstawy 10 do konwersji ciągu na liczbę dziesiętną. Jednak w przypadku konwersji ciągu z liczby szesnastkowej na liczbę dziesiętną jako parametr wejściowy stol(hex, nullptr, 16) podawana jest podstawa 16. Jak wiemy, podstawa 16 reprezentuje liczbę szesnastkową.

#include

#include

#include

int Główny ( )

{

standardowe :: strunowy grudzień = „123456789” ;
standardowe :: strunowy klątwa = 'a2bf3c' ;
standardowe :: strunowy :: typ_rozmiaru rozmiar ;
długie lidec = standardowe :: stół ( grudzień, & rozmiar ) ;
długie lihex = standardowe :: stół ( klątwa, nullptr , 16 ) ;
standardowe :: Cout << 'Wprowadź ciąg dziesiętny' << grudzień << „przekonwertowane na długie int” << lidec << ' \n ' ;
standardowe :: Cout << „Wprowadź ciąg szesnastkowy” << klątwa << „przekonwertowane na długie int” << lihex << ' \n ' ;
zwrócić 0 ;


}

Oto następujące dane wyjściowe. Zauważ, że ciąg dziesiętny „123456789” został przekonwertowany na „123456789” dziesiętną liczbę całkowitą. Podczas gdy ciąg szesnastkowy „a2bf3c” został przekonwertowany na liczbę szesnastkową „10665788”. Oto wymagane kroki, które możesz wykonać, aby dowiedzieć się, jak konwersja jest wykonywana przez funkcję stol:

( A2BF3C ) = ( 10 × 16 ) + ( dwa × 16 ) + ( jedenaście × 16 ³ ) + ( piętnaście × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 )

Przykład nr 2

W tym przykładzie skonwertujemy liczbę binarną za pomocą funkcji stol. Zobaczmy poniższy kod i zrozummy działanie kodu. „1010110110” jest podawany jako ciąg wejściowy, a podstawa 2 jest dostarczana jako wejściowy parametr podstawowy stol(bin,&size, 2), reprezentujący liczbę w formacie binarnym. Funkcja stol przekonwertuje liczbę binarną na liczbę dziesiętną, wykonując następujące kroki:

( 1010110110 ) = ( 1 × dwa ) + ( 0 × dwa ) + ( 1 × dwa ) + ( 0 × dwa ) + ( 1 × dwa ) + ( 1 × dwa ) + ( 0 × dwa ³ ) + ( 1 × dwa ² ) + ( 1 × dwa ¹ ) + ( 0 × dwa ) = ( 694 ) #include

#include

#include

int Główny ( )

{

standardowe :: strunowy kosz = „1010110110” ;
standardowe :: strunowy :: typ_rozmiaru rozmiar ;
długie libina = standardowe :: stół ( kosz, & rozmiar, dwa ) ;
standardowe :: Cout << „Wprowadź ciąg binarny” << kosz << „przekonwertowane na długie int” << libina << ' \n ' ;
zwrócić 0 ;


}

Jak widać, funkcja stol zwróciła ten sam wynik, co ogólny proces konwersji binarnej na dziesiętną.

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 dostarczony ciąg składający się z wielu znaków, a jako wartość podstawowa zostanie podane 0, aby funkcja automatycznie określiła podstawę ciągu. Oto kod:

Zestaw znaków jest dostarczany jako ciąg wejściowy, który nie jest określony przez żadne wartości bazowe, tj. 10, 16, 2 itd., więc funkcja zwróci wartość błędu.

#include

#include

#include

int Główny ( )

{

standardowe :: strunowy Chr = 'abcdefgh' ;

standardowe :: strunowy :: typ_rozmiaru rozmiar ;
długie str = standardowe :: stół ( Chr, nullptr , 0 ) ;
standardowe :: Cout << „Wprowadź ciąg znaków” << Chr << „przekonwertowane na długie int” << str << ' \n ' ;
zwrócić 0 ;


}

Zobacz dane wyjściowe poniżej. Należy zauważyć, że kompilator zgłosił wyjątek „invalid_argument”, ponieważ funkcja nie obsługuje ciągów, których nie można określić za pomocą żadnej wartości podstawowej.

Przykład nr 4

W tym przykładzie przedstawimy kombinację prawidłowych i nieprawidłowych danych wejściowych, aby zobaczyć wynik funkcji stol().

Ciąg wejściowy jest kombinacją prawidłowych i nieprawidłowych znaków, „123xf25”. Jako podstawa wejściowa jest podana „0”, dzięki czemu funkcja automatycznie określa podstawę ciągu wejściowego na podstawie rodzaju znaków.

#include

#include

#include

int Główny ( )

{

standardowe :: strunowy Chr = '123xf25' ;
standardowe :: strunowy :: typ_rozmiaru rozmiar ;
długie str = standardowe :: stół ( Chr, nullptr , 0 ) ;
standardowe :: Cout << „ciąg wejściowy” << Chr << „przekonwertowane na długie int” << str << ' \n ' ;
zwrócić 0 ;


}

Oto dane wyjściowe, które pokazują działanie funkcji stol z kombinacją prawidłowych i nieprawidłowych danych wejściowych:

Zauważ, że funkcja przekonwertowała „123” na liczbę dziesiętną „123” i odrzuciła resztę ciągu, ponieważ otrzymała nieprawidłowe dane wejściowe „x”. Ciąg po znaku „x” nie jest konwertowany przez funkcję stol, zwracając tylko pierwsze znaki ciągu jako long int.

Wniosek

W tym poście przyjrzeliśmy się funkcji stol języka programowania C++. Z pomocą kilku przydatnych i prostych przykładów dowiedzieliśmy się, jak funkcja stol działa z różnymi typami danych wejściowych. Funkcja stol przyjmuje trzy parametry: ciąg wejściowy, który ma zostać przekonwertowany, parametr rozmiaru reprezentujący pozycję funkcji w ciągu oraz wartość bazową reprezentującą podstawę ciągu wejściowego. Zwraca wartość long int ciągu wejściowego.