ayakta bir C++ standart kütüphanesi Bir dizeyi tam sayıya dönüştüren işlev. Anlamı 'tamsayıya dize' . Giriş olarak bir dize alır ve karşılık gelen tamsayı değerini döndürür. İşlev bir tür istisna oluşturabilir std::geçersiz_argument giriş dizesi geçerli bir tam sayıyı temsil etmiyorsa.
C++'da stoi kullanımına örnekler:
#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; }
Çıktı
123 -456
İlk örnekte, dize '123' tam sayıya dönüştürülür 123 . İkinci örnekte, dize '-456' tamsayıya dönüştürülür -456 . Üçüncü örnekte, '7.89' dizisi geçerli bir tamsayı değil, dolayısıyla std::geçersiz_argument istisna atılır.
Diğer örnek kod pasajı:
#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; }
Çıktı
100 512 192 Invalid argument: abc
İlk örnek dizeyi dönüştürür '100' ondalık tam sayıya 100 . İkinci örnekte, dize '200' onaltılık tamsayıya dönüştürülür 512 geçerek 0 ikinci argüman olarak ve 16 üçüncü argüman olarak ayakta .
Üçüncü örnekte, dize '300' sekizlik tamsayıya dönüştürülür 192 geçerek nullptr ikinci argüman olarak ve 8 stoi'nin üçüncü argümanı olarak.
Dördüncü örnekte, dize 'ABC' geçerli bir tam sayı değil, dolayısıyla std::geçersiz_argument istisna atılır.