Funkce Stol() v C++

Funkce Stol V C



C++ je jedním z nejpopulárnějších a nejstarších programovacích jazyků používaných pro vývoj vysoce výkonných aplikací. Používá se mezi vysoce zkušenými programátory a začínajícími vývojáři. Používá se především při vývoji her a je ideální volbou pro vývoj operačních systémů. Při psaní kódu v jazyce C++ můžete narazit na převod dat z jednoho typu na druhý. V tomto článku se naučíte převést řetězec na dlouhé celé číslo. Převést řetězec do jiného formátu je poměrně obtížné. Programovací jazyk C++ však poskytuje rychlý a efektivní způsob převodu řetězců na celá čísla.

Stol Funkce v C++

Stol je vestavěná funkce C++ poskytovaná v knihovně std. Převádí řetězce na dlouhá celá čísla. Převede obsah řetězce na celé číslo zadaného základu a vrátí hodnotu dlouhého celého čísla. Vyžaduje tři parametry, jeden je vstupní řetězec, druhý je parametr objektu a třetí je číselný základ. Syntaxe funkce stol je uvedena níže, podívejte se:









Funkce stol má tři parametry: vstupní_řetězec, velikost a základ. „Vstupní_řetězec“ představuje vstupní řetězec, který je třeba převést na dlouhé celé číslo.



Parametr „size“ představuje objekt typu size_t, který nese další pozici znaku ve vstupním řetězci za číselnou hodnotou. Pokud není nutné jej používat, může to být nulový ukazatel.





Třetí parametr, parametr „base“, představuje základ, ve kterém je třeba řetězec interpretovat. Pokud je například uveden základ „2“, řetězec bude interpretován jako celé číslo se základem 2. Výchozí hodnota základního parametru je 10 a pokud je zadána 0, bude základní hodnota určena formátem v sekvenci. Funkce stol vrací dlouhé celé číslo představující hodnotu int daného řetězce.

Nyní se podívejme na několik příkladů, abychom pochopili, jak funkce stol funguje v C++.



Příklad #1

V tomto příkladu poskytneme desítkové a hexadecimální řetězce, abychom zkontrolovali, jak je funkce stol převede na desítková a šestnáctková celá čísla.

„dec = 123456789“ je desítkový řetězec a převedený na dlouhé celé číslo pomocí funkce stol stol(dec,&size). Všimněte si, že základ není ve funkci poskytován jako vstupní parametr, který v důsledku toho používá výchozí základ 10 k převodu řetězce na desítkové číslo. Pro převod řetězce z hexadecimálního čísla na desítkové je však jako vstupní parametr stol(hex, nullptr, 16) poskytnut základ 16. Jak víme, základ 16 představuje hexadecimální číslo.

#include

#include <řetězec>

#include

int hlavní ( )

{

std :: tětiva prosinec = '123456789' ;
std :: tětiva hex = 'a2bf3c' ;
std :: tětiva :: size_type velikost ;
dlouho lidec = std :: stůl ( prosinec, & velikost ) ;
dlouho lihex = std :: stůl ( hex, nullptr , 16 ) ;
std :: cout << 'Zadejte desetinný řetězec' << prosinec << 'převedeno na long int' << lidec << ' \n ' ;
std :: cout << 'Zadejte hexadecimální řetězec' << hex << 'převedeno na long int' << lihex << ' \n ' ;
vrátit se 0 ;


}

Zde je následující výstup. Všimněte si, že desetinný řetězec „123456789“ převeden na „123456789“ dlouhé celé číslo v desítkové soustavě. Zatímco hexadecimální řetězec „a2bf3c“ převeden na hexadecimální číslo „10665788“. Zde jsou požadované kroky, které můžete provést, abyste zjistili, jak se konverze provádí funkcí stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( dva × 16 ) + ( jedenáct × 16 ³ ) + ( patnáct × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Příklad #2

V tomto příkladu převedeme binární číslo pomocí funkce stol. Podívejme se na kód níže a pochopíme fungování kódu. Jako vstupní řetězec je uveden „1010110110“ a jako vstupní základní parametr stol(bin,&size, 2) je uveden základ 2, který představuje číslo v binárním formátu. Funkce stol převede binární číslo na desítkové číslo podle následujících kroků:

( 1010110110 ) = ( 1 × dva ) + ( 0 × dva ) + ( 1 × dva ) + ( 0 × dva ) + ( 1 × dva ) + ( 1 × dva ) + ( 0 × dva ³ ) + ( 1 × dva ² ) + ( 1 × dva ¹ ) + ( 0 × dva ) = ( 694 ) ₁₀ #include

#include <řetězec>

#include

int hlavní ( )

{

std :: tětiva zásobník = '1010110110' ;
std :: tětiva :: size_type velikost ;
dlouho libin = std :: stůl ( zásobník, & velikost, dva ) ;
std :: cout << 'Vstupní binární řetězec' << zásobník << 'převedeno na long int' << libin << ' \n ' ;
vrátit se 0 ;


}

Jak můžete vidět, funkce stol vrátila stejný výsledek jako obecný proces převodu z binární na desítkové.

Příklad #3

V tomto příkladu uvidíme, co se stane, když otestujeme funkci stol s neplatným vstupem. Funkci stol bude poskytnut řetězec více znaků a jako základní hodnota bude poskytnuta 0, takže funkce automaticky určí základ řetězce. Zde je kód:

Sada znaků je poskytnuta jako vstupní řetězec, který není určen žádnými základními hodnotami, tj. 10, 16, 2 atd., takže funkce vrátí chybovou hodnotu.

#include

#include <řetězec>

#include

int hlavní ( )

{

std :: tětiva chr = 'abcdefgh' ;

std :: tětiva :: size_type velikost ;
dlouho str = std :: stůl ( chr, nullptr , 0 ) ;
std :: cout << 'Zadejte řetězec znaků' << chr << 'převedeno na long int' << str << ' \n ' ;
vrátit se 0 ;


}

Viz výstup níže. Všimněte si, že kompilátor vyvolal výjimku „invalid_argument“, protože funkce se nezabývá řetězci, které nelze určit s žádnou základní hodnotou.

Příklad #4

V tomto příkladu poskytneme kombinaci platného a neplatného vstupu, abychom viděli výsledek funkce stol().

Vstupní řetězec je kombinací platných a neplatných znaků, „123xf25“. „0“ isg poskytnutý jako vstupní základ, takže funkce určí základ vstupního řetězce automaticky na základě typu znaků.

#include

#include <řetězec>

#include

int hlavní ( )

{

std :: tětiva chr = '123xf25' ;
std :: tětiva :: size_type velikost ;
dlouho str = std :: stůl ( chr, nullptr , 0 ) ;
std :: cout << 'Vstupní řetězec' << chr << 'převedeno na long int' << str << ' \n ' ;
vrátit se 0 ;


}

Zde je výstup, který ukazuje fungování funkce stol s kombinací platného a neplatného vstupu:

Všimněte si, že funkce převedla „123“ na desítkové číslo „123“ a zbytek řetězce zahodila, protože obdržela neplatný vstup „x“. Řetězec za znakem „x“ není funkcí stol převeden, vrací pouze první znaky řetězce jako long int.

Závěr

V tomto příspěvku jsme prozkoumali funkci stol programovacího jazyka C++. Pomocí několika užitečných a jednoduchých příkladů jsme se naučili, jak funkce stol pracuje s různými typy vstupů. Funkce stol má tři parametry, vstupní řetězec, který se má převést, parametr velikosti, který představuje pozici funkce v řetězci, a základní hodnotu, která představuje základ vstupního řetězce. Vrací hodnotu long int vstupního řetězce.