Menukar Rentetan kepada Integer dengan Pengendalian Kegagalan dalam C
Apabila berurusan dengan rentetan dalam C , keperluan sering timbul untuk menukarnya kepada perwakilan berangka seperti integer. Satu pendekatan biasa untuk ini ialah menggunakan fungsi std::stoi Perpustakaan Standard C. Walau bagaimanapun, fungsi ini tidak mempunyai keupayaan untuk melaporkan kegagalan dalam penukaran. Untuk kod yang lebih mantap, kami meneroka cara mengendalikan penukaran yang gagal menggunakan rangsangan::lexical_cast dan pendekatan alternatif.
boost::lexical_cast
Golongan::lexical_cast fungsi menyediakan cara yang teguh untuk menukar rentetan kepada integer. Ia memberikan pengecualian jika penukaran tidak dapat dilakukan. Coretan kod berikut menunjukkan penggunaannya:
<code class="cpp">#include <boost/lexical_cast.hpp> try { int i = boost::lexical_cast<int>(s); // ... } catch(...) { // ... }</code>
Pendekatan Bukan Peningkatan
Jika perpustakaan rangsangan tidak tersedia, kaedah alternatif boleh digunakan:
Ringkasnya, menggunakan boost::lexical_cast, std::stringstream, atau fungsi lexical_cast tersuai membolehkan penukaran yang mantap daripada rentetan kepada integer dengan keupayaan pengendalian kegagalan. Pilihan yang tepat bergantung pada ketersediaan perpustakaan dan gelagat pengecualian yang diperlukan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Kegagalan Penukaran Rentetan kepada Integer dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!