Bagaimana Mengendalikan Kegagalan Penukaran Rentetan kepada Integer dalam C?

DDD
Lepaskan: 2024-11-04 21:32:02
asal
507 orang telah melayarinya

How to Handle String to Integer Conversion Failures in C  ?

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>
Salin selepas log masuk

Pendekatan Bukan Peningkatan

Jika perpustakaan rangsangan tidak tersedia, kaedah alternatif boleh digunakan:

  1. Menggunakan std::stringstream: Dengan membaca rentetan ke dalam objek std::stringstream, anda boleh gagal penukaran jika sama ada rentetan itu tidak boleh dibaca sebagai integer atau terdapat tambahan bukan- input ruang kosong.
  2. Mencipta fungsi lexical_cast tersuai: Fungsi ini boleh dilaksanakan dengan membungkus pendekatan std::stringstream dalam templat fungsi.
  3. Menggunakan versi no-throw bagi pendekatan std::stringstream: Jika anda ingin mengelak daripada melontar pengecualian, anda boleh mencipta fungsi lexical_cast yang mengembalikan bool yang menunjukkan kejayaan atau kegagalan daripada penukaran.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!