Program C++ untuk menukar pembolehubah jenis rentetan kepada jenis boolean

WBOY
Lepaskan: 2023-09-15 17:49:02
ke hadapan
1113 orang telah melayarinya

Program C++ untuk menukar pembolehubah jenis rentetan kepada jenis boolean

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.

Algoritma (umum)

  • Dapatkan input dalam pembolehubah rentetan.
  • Tukar nilai rentetan (benar atau salah) kepada nilai boolean.
  • Nilai output.

Gunakan boolalpha dan isringstream

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.

tatabahasa

string ip = <string literal>;
bool op;
istringstream(ip) >> std::boolalpha >> op;
Salin selepas log masuk

Algoritma

  • Dapatkan input dalam pembolehubah rentetan.
  • Letakkan nilai ke dalam objek isringstream dan gunakan boolalpha untuk menetapkan nilai kepada pembolehubah boolean.
  • Nilai output.

Contoh

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

Output

The value of ip is: true
The value of op is: 1
Salin selepas log masuk

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.

Gunakan perbandingan rentetan

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.

tatabahasa

.
string ip = <string literal>;
bool op = ip != “false”;
Salin selepas log masuk

Algoritma

  • Dapatkan input dalam ip pembolehubah rentetan.
  • Gunakan operasi pembolehubah Boolean.
  • Jika ip sama dengan "false", maka
    • op = palsu
  • Jika tidak,
    • op = benar
  • Paparkan nilai op.

Contoh

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

Output

The input value is: true
The output value is: 1
Salin selepas log masuk

Gunakan std::stoi

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.

tatabahasa

string ip = <string literal>;
bool op = (bool)stoi(ip);
Salin selepas log masuk

Algoritma

  • Dapatkan input dalam ip pembolehubah rentetan.
  • Gunakan operasi pembolehubah Boolean.
  • Tukar nilai secara eksplisit kepada bool sebagai hasil daripada stoi(ip).
  • Paparkan nilai op.

Contoh

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

Output

The input value is: 1
The output value is: 1
Salin selepas log masuk

KESIMPULAN

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!

Label berkaitan:
sumber:tutorialspoint.com
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!