C++程式將布林變數轉換為字串


C++中的布林變數只能包含兩個不同的值,'true'或'false'。如果我們將這些值轉換為字串,'true'將對映到'1','false'將對映到'0'。布林值主要用於檢查程式中的某個條件是否滿足。我們沒有像從int到long和float到double的轉換那樣,直接從布林值到字串的轉換。但需要將布林值轉換為字串,我們探討了將二進位制布林值轉換為字串值的幾種不同方法。

使用三元運算子進行轉換

我們設計了一種演算法,使用該演算法檢查提供的布林變數的值,然後根據該值輸出'true'或'false'。輸出是一個字串變數,而輸入是一個布林值。我們使用了三元運算子來確定輸出,因為只有兩個布林值。

語法

bool input = <Boolean value>;
string output = input ? "true" : "false";

演算法

  • 將布林值作為輸入;
  • 如果布林值為真,則輸出將為字串'true'。
  • 否則,如果布林輸入值為假,則輸出值將為'false'。

示例

#include <iostream> using namespace std; string solve(bool input) { //using ternary operators return input ? "true" : "false"; } int main() { bool ip = true; string 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: true

輸入值儲存在變數ip中,轉換操作在函式solve()中完成。函式的輸出儲存在一個字串變數中,該變數為op。我們可以看到這兩個變數的輸出。輸出中的第一個值是在轉換之前,輸出中的第二個值是在轉換之後。

在字串輸出時使用std::boolalpha

boolalpha是一個I/O操縱器,因此可以在流中使用。我們將討論的第一種方法無法使用此方法將布林值分配給字串變數,但我們可以使用它以輸入/輸出流中的格式輸出它。

語法

bool input = <Boolean value>;
cout<< "The output value is: " << boolalpha << input << endl;

演算法

  • 將布林值作為輸入。
  • 使用boolapha修飾符顯示布林值作為輸出。

示例

#include <iostream> using namespace std; int main() { bool ip = true; cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << boolalpha << ip << endl; return 0; }

輸出

The input value is: 1
The output value is: true

在上面的示例中,我們可以看到,如果我們使用cout輸出布林變數的值,輸出為0或1。當我們在cout中使用boolalpha時,我們可以看到輸出更改為字串格式。

使用std::boolalpha並將其分配給變數

在前面的示例中,我們只是修改了輸出流以獲取布林值的字串輸出。現在我們看看如何使用它將字串值儲存在變數中。

語法

bool input = <Boolean value>;
ostringstream oss;
oss << boolalpha << ip;
string output = oss.str();

演算法

  • 將布林值作為輸入。
  • 使用boolalpha修飾符將輸入值放入輸出流物件中。
  • 返回輸出流物件的字串格式。

示例

#include <iostream> #include <sstream> using namespace std; string solve(bool ip) { //using outputstream and modifying the value in the stream ostringstream oss; oss << boolalpha << ip; return oss.str(); } int main() { bool ip = false; string op = solve(ip); cout<< "The input value is: " << ip << endl; cout<< "The output value is: " << op << endl; return 0; }

輸出

The input value is: 0
The output value is: false

與前面的示例不同,我們將輸入布林值放入輸出流中,然後將其轉換為字串。solve()函式返回一個字串值,我們在字串函式中將該值儲存在op變數中。

結論

我們討論了將二進位制布林值轉換為字串的各種方法。當我們處理資料庫或與某些基於Web的API互動時,這些方法很有用。API或資料庫方法可能不接受布林值,因此使用這些方法,我們可以將其轉換為字串值,因此任何接受字串值的方法也可以使用。

更新於: 2022年10月19日

4K+瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.