logo

Stoi-funktion i C++

De stående är en C++ standardbibliotek funktion som omvandlar en sträng till ett heltal. Det står för 'sträng till heltal' . Den tar en sträng som indata och returnerar motsvarande heltalsvärde. Funktionen kan ta upp ett undantag av typ std::invalid_argument om inmatningssträngen inte representerar ett giltigt heltal.

Exempel på användning av stoi i 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; } 

Produktion

10 av 40
 123 -456 

I det första exemplet, strängen '123' konverteras till heltal 123 . I det andra exemplet, strängen '-456' konverteras till heltal -456 . I det tredje exemplet är strängen '7.89' inte ett giltigt heltal, så en std::invalid_argument undantag kastas.

Annat exempel på kodavsnitt:

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

Produktion

c# ordbok
 100 512 192 Invalid argument: abc 

Det första exemplet konverterar strängen '100' till det decimala heltal 100 . I det andra exemplet, strängen '200' konverteras till det hexadecimala heltal 512 genom att passera 0 som det andra argumentet och 16 som det tredje argumentet till stående .

I det tredje exemplet, strängen '300' konverteras till det oktala heltal 192 genom att passera nullptr som det andra argumentet och 8 som det tredje argumentet till stoi.

I det fjärde exemplet, strängen 'abc' är inte ett giltigt heltal, så ett std::invalid_argument undantag kastas.