logo

std::stoi Funkce v C++

Stoi() je standardní knihovní funkce, která převádí řetězec na celé číslo. Programátoři C++ využívají funkci, která znamená řetězec na celé číslo, k získání celých čísel z řetězců. Kromě toho může funkce stoi() odstranit další komponenty, jako jsou koncová písmena z řetězce.

Syntax:



int stoi (string s, size_t* position = 0, int base = 10)>

Parametry:

  1. Řetězec, který má být transformován, je prvním parametrem.
  2. Umístění celého čísla používaného ke sledování počtu přečtených znaků. V tomto scénáři se nepoužije, pokud je tento parametr nulový ukazatel.
  3. Třetím a posledním parametrem je základ. Formát sekvence určuje použitý základ, pokud je to 0. Pokud není předán žádný argument, používá základ 10 (desítkové).

Příklady:

Vstup: 1NoProgrammer;



Výstup: 1

Vstup : HelloWorld54;

Výstup : termin volání po vyvolání instance ‚std::invalid_argument‘



Vysvětlení: To způsobí chybu, protože pokud je první znak neceločíselný, funkce stoi() skončí

css přechod opacity

Vstup : Máte 1 klávesnici;

Výstup : termin volání po vyvolání instance ‚std::invalid_argument‘

co(): stojí

3D v autocadu

Typ vrácení: Řetězcová hodnota argumentu předaná do stojící() funkce je vrácena jako celé číslo.

Jak to funguje?

Funkce stoi(), která přijímá řetězec jako argument, může převést celočíselnou složku řetězce na celočíselný typ. Bude uvažovat pouze celočíselné hodnoty až po první neceločíselný prvek nebo konec řetězce.

Když spustíme níže uvedený program, za běhu dojde k chybě. To je způsobeno skutečností, že funkce stoi() přestane procházet řetězcem, když narazí na neceločíselný znak nebo prázdný znak. Funkce stoi() se ukončí, pokud počáteční znak není celé číslo.

Příklad:

C++




// C++ Program to convert> // string into integer> // Using stoi function> // Error occurred> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string s =>'GeeksForGeeks 1'>;> >// calling stoi() passing string as parameter.> >int> n = stoi(s);> >cout << n;> }>

>

>

seřadit seznam polí v jazyce Java
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Hlásí chybu, protože funkce stoi() narazí na prázdný znak před 1.

Příklad:

C++




// C++ Program to convert> // string into integer> // Using stoi> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string str =>'2009, techcodeview.com_founded'>;> >string str1 =>'0x6C1'>;> >string str2 =>'-10010010101'>;> >// Calling stoi() for all strings.> >int> num = stoi(str);> >int> num_hex = stoi(str1, nullptr, 16);> >int> num_bin = stoi(str2, nullptr, 2);> >// printing converted values> >cout << str <<>': '> << num << endl;> >cout << str1 <<>': '> << num_hex << endl;> >cout << str2 <<>': '> << num_bin << endl;> >return> 0;> }>

>

>

Výstup

2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>

Časová složitost: O(n) // n je délka řetězce.

python snížit

Pomocný prostor: O(1)