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 як третій аргумент стої.

У четвертому прикладі рядок 'abc' не є дійсним цілим числом, тому a std::invalid_argument викидається виняток.