De stående er en C++ standardbibliotek funksjon som konverterer en streng til et heltall. Det står for 'streng til heltall' . Den tar en streng som input og returnerer den tilsvarende heltallsverdien. Funksjonen kan gi et unntak av typen std::ugyldig_argument hvis inndatastrengen ikke representerer et gyldig heltall.
Eksempler på bruk 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; }
Produksjon
123 -456
I det første eksemplet, strengen '123' konverteres til heltall 123 . I det andre eksemplet, strengen '-456' konverteres til heltall -456 . I det tredje eksemplet er ikke strengen '7.89' et gyldig heltall, så en std::ugyldig_argument unntak er kastet.
Annen eksempelkodebit:
#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; }
Produksjon
100 512 192 Invalid argument: abc
Det første eksemplet konverterer strengen '100' til desimaltall 100 . I det andre eksemplet, strengen '200' konverteres til det heksadesimale heltall 512 ved å bestå 0 som det andre argumentet og 16 som det tredje argumentet til stående .
I det tredje eksemplet, strengen '300' konverteres til det oktale heltall 192 ved å bestå nullptr som det andre argumentet og 8 som det tredje argumentet til stoi.
I det fjerde eksemplet, strengen 'abc' er ikke et gyldig heltall, så en std::ugyldig_argument unntak er kastet.