logo

std::stoi Funkcija C++ valodā

Stoi () ir standarta bibliotēkas funkcija, kas pārvērš virkni par veselu skaitli. C++ programmētāji izmanto funkciju, kas apzīmē virkni uz veselu skaitli, lai iegūtu veselus skaitļus no virknēm. Turklāt funkcija stoi() var noņemt citus komponentus, piemēram, virknes beigu burtus.

Sintakse:

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

Parametri:



  1. Virkne, kas jāpārveido, ir pirmais parametrs.
  2. Vesela skaitļa atrašanās vieta, ko izmanto, lai izsekotu nolasīto rakstzīmju skaitu. Šādā gadījumā tas netiek izmantots, ja šis parametrs ir nulles rādītājs.
  3. Trešais un pēdējais parametrs ir bāze. Secības formāts nosaka izmantoto bāzi, ja tā ir 0. Ja netiek nodots neviens arguments, tā izmanto 10. bāzi (decimāldaļu).

Piemēri:

Ievade: 1NoProgrammer;

Izvade: 1

Ievade : HelloWorld54;

Izvade : terminate tiek izsaukts pēc 'std::invalid_argument' gadījuma

Paskaidrojums: Tas rada kļūdu, jo, ja pirmā rakstzīme nav vesels skaitlis, funkcija stoi () tiek pārtraukta

kā pārvērst virkni par veselu skaitli

Ievade : jums ir 1 tastatūra;

Izvade : terminate tiek izsaukts pēc 'std::invalid_argument' gadījuma

kas(): stāv

Atgriešanas veids: Argumenta virknes vērtība, kas nosūtīta uz stāvu () funkcija tiek atgriezta kā vesels skaitlis.

Kā tas strādā?

Funkcija stoi(), kas pieņem virkni kā argumentu, var pārvērst virknes veselu skaitļa komponentu par vesela skaitļa tipu. Tas ņems vērā tikai veselus skaitļus līdz pirmajam elementam, kas nav vesels skaitlis, vai virknes beigām.

Kad mēs izpildām tālāk norādīto programmu, izpildes laikā tiks parādīta kļūda. Tas ir saistīts ar faktu, ka funkcija stoi() pārtrauc šķērsot virkni, kad tā saskaras ar rakstzīmi, kas nav vesels skaitlis, vai atstarpes rakstzīmi. Funkcija stoi() iziet, ja sākotnējā rakstzīme nav vesels skaitlis.

Piemērs:

C++


java saraksta mezgls



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

>

>

tring to int
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Tas rada kļūdu, jo funkcija stoi() saskaras ar atstarpes rakstzīmi pirms 1.

Piemērs:

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

>

>

Izvade

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

Laika sarežģītība: O(n) // n ir virknes garums.

āmrija vs āpsis

Palīgtelpa: O(1)