在C++中,布爾變量只能包含兩個不同的值,’true’或’false’。如果我們將這些值轉換為字符串,’true’將映射為’1’,’false’將映射為’0’。布爾值主要用于檢查程序中是否滿足條件。與從int到long和float到double的轉換不同,布爾到字符串沒有直接的轉換。但是有需要將布爾值轉換為字符串的情況,我們將探討不同的方法將二進制布爾值轉換為字符串值。
使用三元運算符進行翻譯
我們設計了一個算法,使用該算法我們可以檢查提供的布爾變量的值,并根據該值輸出“true”或“false”。輸出是一個字符串變量,而輸入是一個布爾值。我們使用三元運算符來確定輸出,因為布爾值只有兩個可能的取值。
語法
bool input = <Boolean value>; string output = input ? "true" : "false";
登錄后復制
算法
-
以布爾值作為輸入;
如果布爾值為 true,則輸出將為字符串“true”。
如果布爾輸入值為 false,則輸出值為“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或數據庫方法可能不接受布爾值,因此使用這些方法我們可以將其轉換為字符串值,因此也可以使用任何接受字符串值的方法。
以上就是C++程序將布爾變量轉換為字符串的詳細內容,更多請關注www.xfxf.net其它相關文章!






