logo

C++'da Stoi işlevi

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.