logo

std::stoi Funkcja w C++

Sto() to standardowa funkcja biblioteczna, która zamienia ciąg znaków na liczbę całkowitą. Programiści C++ używają funkcji, która oznacza zamianę ciągu na liczbę całkowitą, aby uzyskać liczby całkowite z ciągów. Dodatkowo funkcja stoi() może usunąć z łańcucha inne komponenty, takie jak końcowe litery.

Składnia:



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

Parametry:

  1. Pierwszym parametrem jest ciąg znaków, który ma zostać przekształcony.
  2. Lokalizacja liczby całkowitej używanej do śledzenia liczby odczytanych znaków. W tym scenariuszu nie jest używany, jeśli ten parametr jest wskaźnikiem zerowym.
  3. Trzecim i ostatnim parametrem jest base. Format sekwencji określa używaną podstawę, jeśli wynosi ona 0. Jeśli nie zostanie przekazany żaden argument, używana jest podstawa 10 (dziesiętna).

Przykłady:

Wejście: 1NieProgramista;



Wyjście: 1

Wejście : WitajŚwiecie54;

Wyjście : zakończenie wywoływane po rzuceniu instancji „std::invalid_argument”



Wyjaśnienie: Powoduje to błąd, ponieważ jeśli pierwszy znak nie jest liczbą całkowitą, funkcja stoi() kończy się

byki kontra wół

Wejście : Masz 1 klawiaturę;

Wyjście : zakończenie wywoływane po rzuceniu instancji „std::invalid_argument”

what(): stoi

Typ zwrotu: Wartość ciągu argumentu przekazana do metody stoi() funkcja jest zwracana jako liczba całkowita.

Jak to działa?

Funkcja stoi(), która przyjmuje jako argument ciąg znaków, może przekonwertować składnik całkowity ciągu na typ całkowity. Uwzględni tylko wartości całkowite aż do pierwszego elementu niecałkowitego lub końca łańcucha.

Kiedy wykonamy poniższy program, w czasie jego wykonywania pojawi się błąd. Dzieje się tak dlatego, że funkcja stoi() przestaje przechodzić przez ciąg znaków, gdy napotka znak niebędący liczbą całkowitą lub znak odstępu. Funkcja stoi() kończy działanie, jeśli początkowy znak nie jest liczbą całkowitą.

Przykład:

C++


polecenia systemu Linux tworzą folder



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

>

>

tablica Java
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Wyświetla błąd, ponieważ funkcja stoi() napotkała biały znak przed 1.

Przykład:

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

>

>

Wyjście

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

Złożoność czasowa: O(n) // n to długość łańcucha.

wyrównanie tekstu CSS

Przestrzeń pomocnicza: O(1)