logo

std::stoi Funkcia v C++

Stoi() je štandardná knižničná funkcia, ktorá mení reťazec na celé číslo. Programátori C++ využívajú funkciu, ktorá znamená reťazec po celé číslo, na získanie celých čísel z reťazcov. Okrem toho funkcia stoi() môže odstrániť ďalšie komponenty, ako sú koncové písmená z reťazca.

Syntax:



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

Parametre:

  1. Prvým parametrom je reťazec, ktorý sa musí transformovať.
  2. Umiestnenie celého čísla používaného na sledovanie počtu prečítaných znakov. V tomto scenári sa nepoužije, ak je tento parameter nulový ukazovateľ.
  3. Tretím a posledným parametrom je základňa. Formát sekvencie určuje použitý základ, ak je to 0. Používa základ 10 (desatinné), ak nie je zadaný žiadny argument.

Príklady:

Vstup: 1NoProgrammer;



Výkon: 1

Vstup : HelloWorld54;

Výkon : termin sa volá po vyvolaní inštancie „std::invalid_argument“



Vysvetlenie: Toto spôsobí chybu, pretože ak je prvý znak neceločíselný, funkcia stoi() sa ukončí

zoznam fontov v gimp

Vstup : Máte 1 klávesnicu;

Výkon : termin sa volá po vyvolaní inštancie „std::invalid_argument“

čo(): stojí

Typ návratu: Reťazcová hodnota argumentu odovzdaná do stojace() funkcia sa vráti ako celé číslo.

Ako to funguje?

Funkcia stoi(), ktorá akceptuje reťazec ako argument, dokáže previesť celočíselný komponent reťazca na celočíselný typ. Bude brať do úvahy iba celočíselné hodnoty až po prvý neceločíselný prvok alebo koniec reťazca.

Keď spustíme nižšie uvedený program, za behu sa vygeneruje chyba. Je to spôsobené tým, že funkcia stoi() prestane prechádzať reťazcom, keď narazí na neceločíselný znak alebo znak medzery. Funkcia stoi() sa ukončí, ak počiatočný znak nie je celé číslo.

Príklad:

C++


junit testovacie prípady



// 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;> }>

>

>

zoradiť zoznam polí v jazyku Java
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Dáva chybu, pretože funkcia stoi() narazí na medzeru pred 1.

Prí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ýkon

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

Časová zložitosť: O(n) // n je dĺžka reťazca.

premenovať linuxový adresár

Pomocný priestor: O(1)