logo

Stoi-funktion i C++

Det stående er en C++ standardbibliotek funktion, der konverterer en streng til et heltal. Det står for 'streng til heltal' . Det tager en streng som input og returnerer den tilsvarende heltalsværdi. Funktionen kan rejse en undtagelse af typen std::ugyldigt_argument hvis inputstrengen ikke repræsenterer et gyldigt heltal.

Eksempler på brug af 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

 123 -456 

I det første eksempel, strengen '123' konverteres til heltal 123 . I det andet eksempel, strengen '-456' konverteres til heltal -456 . I det tredje eksempel er strengen '7.89' ikke et gyldigt heltal, så en std::ugyldigt_argument undtagelse er kastet.

Andet eksempel på kodestykke:

 #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

 100 512 192 Invalid argument: abc 

Det første eksempel konverterer strengen '100' til det decimale heltal 100 . I det andet eksempel, strengen '200' konverteres til det hexadecimale heltal 512 ved at passere 0 som det andet argument og 16 som det tredje argument til stående .

I det tredje eksempel, strengen '300' konverteres til det oktale heltal 192 ved at passere nullptr som det andet argument og 8 som det tredje argument til stoi.

I det fjerde eksempel, strengen 'abc' er ikke et gyldigt heltal, så en std::ugyldigt_argument undtagelse er kastet.