logo

Stoi-functie in C++

De staan is een C++ standaardbibliotheek functie die een string omzet naar een geheel getal. Het staat voor 'tekenreeks naar geheel getal' . Het heeft een string als invoer nodig en retourneert de overeenkomstige gehele waarde. De functie kan een uitzondering van het type genereren std::ongeldig_argument als de invoertekenreeks geen geldig geheel getal vertegenwoordigt.

Voorbeelden van het gebruik van stoi in 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; } 

Uitvoer

c++ int naar tekenreeks
 123 -456 

In het eerste voorbeeld is de string '123' wordt omgezet naar het gehele getal 123 . In het tweede voorbeeld is de string '-456' wordt omgezet naar het gehele getal -456 . In het derde voorbeeld is de string '7.89' geen geldig geheel getal, dus a std::ongeldig_argument uitzondering wordt gegooid.

Ander voorbeeldcodefragment:

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

Uitvoer

shloka mehta
 100 512 192 Invalid argument: abc 

In het eerste voorbeeld wordt de tekenreeks geconverteerd '100' tot het decimale gehele getal 100 . In het tweede voorbeeld is de string '200' wordt geconverteerd naar het hexadecimale gehele getal 512 door te passeren 0 als het tweede argument en 16 als derde argument staan .

In het derde voorbeeld is de string '300' wordt omgezet naar het octale gehele getal 192 door te passeren nulptr als het tweede argument en 8 als het derde argument voor stoi.

In het vierde voorbeeld is de string 'abc' is geen geldig geheel getal, dus a std::ongeldig_argument uitzondering wordt gegooid.