Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menukar Rentetan kepada Beregu dalam C dan Mengendalikan Rentetan Bukan Berangka dengan Selamat?
Menukar Rentetan kepada Beregu dalam C dengan Pengendalian Khas untuk Rentetan Bukan Berangka
Dalam C , menukar rentetan kepada beregu boleh dilakukan dengan lancar menggunakan fungsi terbina dalam. Walau bagaimanapun, menjadi penting untuk membezakan antara rentetan berangka dan bukan berangka. Untuk menangani cabaran ini, kami membentangkan penyelesaian yang mengembalikan 0 untuk rentetan bukan berangka.
Pelaksanaan Fungsi:
Inti penyelesaian kami terletak pada fungsi string_to_double:
<code class="cpp">#include <sstream> double string_to_double(const std::string& s) { std::istringstream i(s); double x; if (!(i >> x)) return 0; return x; }</code>
Cara Ia Berfungsi:
Menguji Fungsi:
Dalam kes ujian yang disediakan, kami menunjukkan cara fungsi mentafsir rentetan angka dan bukan angka yang berbeza dengan betul:
<code class="cpp">int main() { assert(0.5 == string_to_double("0.5")); assert(0.5 == string_to_double("0.5 ")); assert(0.5 == string_to_double(" 0.5")); assert(0.5 == string_to_double("0.5a")); // Non-numerical strings will return 0: assert(0 == string_to_double("foobar")); }</code>
Keterbatasan:
Adalah penting untuk ambil perhatian bahawa disebabkan oleh keperluan khusus untuk mengembalikan 0 untuk rentetan bukan berangka, membezakan antara rentetan berangka yang mewakili rentetan sifar dan rentetan yang benar-benar bukan berangka adalah tidak mungkin.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan kepada Beregu dalam C dan Mengendalikan Rentetan Bukan Berangka dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!