logo

Funkcia Stoi v C++

The stojace je a Štandardná knižnica C++ funkcia, ktorá konvertuje reťazec na celé číslo. To znamená 'reťazec na celé číslo' . Vezme reťazec ako vstup a vráti zodpovedajúcu celočíselnú hodnotu. Funkcia môže vyvolať výnimku typu std::invalid_argument ak vstupný reťazec nepredstavuje platné celé číslo.

Príklady použitia 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ýkon

 123 -456 

V prvom príklade reťazec '123' sa prevedie na celé číslo 123 . V druhom príklade reťazec '-456' sa prevedie na celé číslo -456 . V treťom príklade reťazec '7,89' nie je platným celým číslom, takže a std::invalid_argument je vyvolaná výnimka.

Iný príklad útržku 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ýkon

 100 512 192 Invalid argument: abc 

Prvý príklad konvertuje reťazec '100' na celé desatinné číslo 100 . V druhom príklade reťazec '200' sa prevedie na hexadecimálne celé číslo 512 míňaním 0 ako druhý argument a 16 ako tretí argument k stojace .

V treťom príklade reťazec '300' sa prevedie na osmičkové celé číslo 192 míňaním nullptr ako druhý argument a 8 ako tretí argument k stoi.

Vo štvrtom príklade reťazec 'abc' nie je platné celé číslo, takže a std::invalid_argument je vyhodená výnimka.