The stoi jest Standardowa biblioteka C++ funkcja konwertująca ciąg znaków na liczbę całkowitą. To znaczy „ciąg znaków na liczbę całkowitą” . Jako dane wejściowe przyjmuje ciąg znaków i zwraca odpowiednią wartość całkowitą. Funkcja może zgłosić wyjątek typu std::nieprawidłowy_argument jeśli ciąg wejściowy nie reprezentuje prawidłowej liczby całkowitej.
Przykłady użycia stoi w C++:
#include #include int main() { std::string str1 = '123'; int num1 = std::stoi(str1); std::cout<< num1 << std::endl; // Output: 123 std::string str2 = '-456'; int num2 = std::stoi(str2); std::cout<< num2 << std::endl; // Output: -456 std::string str3 = '7.89'; try { int num3 = std::stoi(str3); } catch (std::invalid_argument&e) { std::cout<< 'Invalid argument: ' << str3 << std::endl; } return 0; }
Wyjście
123 -456
W pierwszym przykładzie string „123” jest konwertowany na liczbę całkowitą 123 . W drugim przykładzie ciąg „-456” jest konwertowany na liczbę całkowitą -456 . W trzecim przykładzie ciąg „7,89” nie jest prawidłową liczbą całkowitą, więc a std::nieprawidłowy_argument zgłaszany jest wyjątek.
Inny przykładowy fragment kodu:
#include #include int main() { std::string str1 = '100'; int num1 = std::stoi(str1); std::cout<< num1 << std::endl; // Output: 100 std::string str2 = '200'; int num2 = std::stoi(str2, 0, 16); std::cout<< num2 << std::endl; // Output: 512 std::string str3 = '300'; int num3 = std::stoi(str3, nullptr, 8); std::cout<< num3 << std::endl; // Output: 192 std::string str4 = 'abc'; try { int num4 = std::stoi(str4); } catch (std::invalid_argument&e) { std::cout<< 'Invalid argument: ' << str4 << std::endl; } return 0; }
Wyjście
100 512 192 Invalid argument: abc
Pierwszy przykład konwertuje ciąg „100” do dziesiętnej liczby całkowitej 100 . W drugim przykładzie ciąg „200” jest konwertowany na szesnastkową liczbę całkowitą 512 przechodząc 0 jako drugi argument i 16 jako trzeci argument stoi .
W trzecim przykładzie ciąg „300” jest konwertowany na ósemkową liczbę całkowitą 192 przechodząc nullptr jako drugi argument i 8 jako trzeci argument stoiska.
W czwartym przykładzie ciąg 'ABC' nie jest prawidłową liczbą całkowitą, więc a std::nieprawidłowy_argument zgłaszany jest wyjątek.