logo

Функция Stoi в C++

The стоящ е C++ стандартна библиотека функция, която преобразува низ в цяло число. Това означава 'низ към цяло число' . Той приема низ като вход и връща съответната целочислена стойност. Функцията може да предизвика изключение от тип std::invalid_argument ако входният низ не представлява валидно цяло число.

Примери за използване на stoi в 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; } 

Изход

 123 -456 

В първия пример, низът '123' се преобразува в цяло число 123 . Във втория пример, низът '-456' се преобразува в цяло число -456 . В третия пример низът '7,89' не е валидно цяло число, така че a std::invalid_argument хвърля се изключение.

Друг примерен кодов фрагмент:

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

Изход

 100 512 192 Invalid argument: abc 

Първият пример преобразува низа '100' до десетично цяло число 100 . Във втория пример, низът '200' се преобразува в шестнадесетично цяло число 512 чрез преминаване 0 като втори аргумент и 16 като трети аргумент за стоящ .

В третия пример, низът '300' се преобразува в осмично цяло число 192 чрез преминаване nullptr като втори аргумент и 8 като трети аргумент за stoi.

В четвъртия пример, низът 'abc' не е валидно цяло число, така че a std::invalid_argument хвърля се изключение.