logo

Funkcja Stoi w C++

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.