The stojící je Standardní knihovna C++ funkce, která převádí řetězec na celé číslo. Znamená 'řetězec na celé číslo' . Vezme řetězec jako vstup a vrátí odpovídající celočíselnou hodnotu. Funkce může vyvolat výjimku typu std::invalid_argument pokud vstupní řetězec nepředstavuje platné celé číslo.
Příklady použití stoi v 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; }
Výstup
123 -456
V prvním příkladu řetězec '123' se převede na celé číslo 123 . Ve druhém příkladu řetězec '-456' se převede na celé číslo -456 . Ve třetím příkladu řetězec '7,89' není platné celé číslo, takže a std::invalid_argument je vyvolána výjimka.
odlévat řetězec jako int
Další ukázkový fragment kódu:
#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; }
Výstup
100 512 192 Invalid argument: abc
První příklad převede řetězec '100' na celé desetinné číslo 100 . Ve druhém příkladu řetězec '200' se převede na hexadecimální celé číslo 512 průchodem 0 jako druhý argument a 16 jako třetí argument stojící .
porovnání řetězců java
Ve třetím příkladu řetězec '300' se převede na osmičkové celé číslo 192 průchodem nullptr jako druhý argument a 8 jako třetí argument k stoi.
Ve čtvrtém příkladu řetězec 'abc' není platné celé číslo, takže a std::invalid_argument je vyvolána výjimka.