Dalam C++, pembolehubah Boolean terdiri daripada data perduaan benar atau salah dan pembolehubah rentetan ialah jujukan huruf, nombor dan aksara khas. Pengkompil itu sendiri tidak boleh menukar rentetan kepada boolean, tetapi terdapat beberapa cara untuk melaksanakan penukaran ini. Kami meneroka pelbagai kaedah untuk menukar nilai rentetan kepada nilai Boolean.
Jika kita berfikir tentang algoritma, ia sangat mudah. Kami mengambil nilai rentetan dan menukarnya kepada nilai boolean menggunakan pelbagai cara.
Boolalpha ialah manipulator I/O aliran yang boleh digunakan untuk memanipulasi nilai Boolean dan abjad angka. Istringstream ialah aliran rentetan yang digunakan untuk melaksanakan fungsi yang berbeza pada aliran aksara. Memandangkan boolalpha berfungsi dengan strim, ia boleh digunakan dengan isringstream untuk menukar nilai rentetan kepada nilai boolean.
string ip = <string literal>; bool op; istringstream(ip) >> std::boolalpha >> op;
#include <iostream> #include<sstream> using namespace std; bool solve(string ip) { bool op; istringstream(ip) >> std::boolalpha >> op; return op; } int main() { string ip = "true"; bool op = solve(ip); cout << "The value of ip is: " << ip <<endl; cout << "The value of op is: " << op <<endl; return 0; }
The value of ip is: true The value of op is: 1
Dalam contoh ini, kami mengambil nilai rentetan sebagai input. Kami kemudian menggunakan objek isringstream untuk mengandungi nilai rentetan dan kemudian menggunakan pengubah suai boolalpha untuk menukarnya kepada pembolehubah boolean. Kami mencetak nilai input dan output untuk perbandingan.
Dalam contoh seterusnya, kami telah melakukan perbandingan rentetan asas untuk menukar nilai rentetan kepada nilai Boolean Jika nilai rentetan adalah sama dengan 'false', maka 0 dikembalikan, jika tidak, 1 dikembalikan perlu diperhatikan bahawa ini kembali benar untuk semua rentetan selain daripada 'salah' Tetapi kaedah ini adalah yang paling mudah untuk dilaksanakan.
string ip = <string literal>; bool op = ip != “false”;
#include <iostream> using namespace std; bool solve(string s) { return s != "false"; } using namespace std; int main() { string ip = "true"; bool op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: true The output value is: 1
Dalam contoh sebelumnya, kami hanya menukar "true" kepada nilai Boolean "1" dan "false" kepada nilai Boolean "0". Sekarang, dalam beberapa kes nilai rentetan mungkin 0 atau 1. Untuk kes ini, kita boleh menggunakan fungsi stoi untuk menukar nilai rentetan kepada integer dan kemudian kepada nilai boolean. Fungsi stoi menukar nilai rentetan kepada integer dan menggunakan penukaran jenis eksplisit kita boleh menukar nilai kepada nilai boolean.
string ip = <string literal>; bool op = (bool)stoi(ip);
#include <iostream> #include <string> using namespace std; bool solve(string s) { //using std:: stoi function return (bool)stoi(s); } using namespace std; int main() { string ip = "1"; bool op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }
The input value is: 1 The output value is: 1
Kami mengambil rentetan sebagai input, yang mungkin mengandungi sebarang nilai "benar", "1", "salah" atau "0". Dua kaedah pertama menukar "benar" atau "salah" kepada 1 dan 0 masing-masing. Jika kita menggantikan "benar" atau "salah" dengan "1" atau "0", ia akan berfungsi dengan cara yang sama. Tetapi dalam contoh ketiga, jika kita menukar '1' atau '0' kepada 'true' atau 'false', ia tidak akan berfungsi kerana fungsi stoi tidak boleh menukar rentetan yang tidak mengandungi aksara alfanumerik kepada nilai integer dan oleh itu tidak boleh ditukar kepada nilai Boolean. Jadi, bergantung kepada kes penggunaan, kita perlu menentukan kaedah terbaik untuk digunakan.
Apabila menggunakan perpustakaan atau API pihak ketiga tertentu dalam projek tertentu, penukaran rentetan kepada boolean diperlukan. Sesetengah API atau perpustakaan mengeluarkan dalam format rentetan, untuk menjadikan hasil serasi, kita perlu menukar nilai rentetan kepada nilai boolean.
Atas ialah kandungan terperinci Program C++ untuk menukar pembolehubah jenis rentetan kepada jenis boolean. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!