在C++中,布爾變量只能包含兩個(gè)不同的值,’true’或’false’。如果我們將這些值轉(zhuǎn)換為字符串,’true’將映射為’1’,’false’將映射為’0’。布爾值主要用于檢查程序中是否滿足條件。與從int到long和float到double的轉(zhuǎn)換不同,布爾到字符串沒有直接的轉(zhuǎn)換。但是有需要將布爾值轉(zhuǎn)換為字符串的情況,我們將探討不同的方法將二進(jìn)制布爾值轉(zhuǎn)換為字符串值。
使用三元運(yùn)算符進(jìn)行翻譯
我們?cè)O(shè)計(jì)了一個(gè)算法,使用該算法我們可以檢查提供的布爾變量的值,并根據(jù)該值輸出“true”或“false”。輸出是一個(gè)字符串變量,而輸入是一個(gè)布爾值。我們使用三元運(yùn)算符來確定輸出,因?yàn)椴紶栔抵挥袃蓚€(gè)可能的取值。
語(yǔ)法
bool input = <Boolean value>; string output = input ? "true" : "false";
登錄后復(fù)制
算法
-
以布爾值作為輸入;
如果布爾值為 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; }
登錄后復(fù)制
輸出
The input value is: 1 The output value is: true
登錄后復(fù)制登錄后復(fù)制
輸入的值存儲(chǔ)在變量ip中,并在函數(shù)solve()中進(jìn)行轉(zhuǎn)換操作。函數(shù)的輸出存儲(chǔ)在一個(gè)字符串變量op中。我們可以看到兩個(gè)變量的輸出。輸出中的第一個(gè)值是轉(zhuǎn)換之前的值,輸出中的第二個(gè)值是轉(zhuǎn)換之后的值。
使用std::boolalpha進(jìn)行字符串輸出
boolalpha是一個(gè)I/O操縱器,因此它可以在流中使用。我們將討論的第一種方法不能使用這種方法將布爾值分配給字符串變量,但我們可以使用它在輸入/輸出流中以特定格式輸出。
語(yǔ)法
bool input = <Boolean value>; cout<< "The output value is: " << boolalpha << input << endl;
登錄后復(fù)制
算法
-
以布爾值作為輸入。
使用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; }
登錄后復(fù)制
輸出
The input value is: 1 The output value is: true
登錄后復(fù)制登錄后復(fù)制
在上面的示例中,我們可以看到,如果我們使用cout輸出布爾變量的值,輸出結(jié)果為0或1。當(dāng)我們?cè)赾out中使用boolalpha時(shí),可以看到輸出結(jié)果變?yōu)樽址袷健?/p>
使用std::boolalpha并將其賦值給一個(gè)變量
在前面的例子中,我們只是修改了輸出流以獲取布爾值的字符串輸出。現(xiàn)在我們看看如何使用這個(gè)來將字符串值存儲(chǔ)在變量中。
語(yǔ)法
bool input = <Boolean value>; ostringstream oss; oss << boolalpha << ip; string output = oss.str();
登錄后復(fù)制
算法
-
以布爾值作為輸入。
使用boolalpha修飾符將輸入值放入輸出流對(duì)象中。
返回輸出流對(duì)象的字符串格式。
示例
#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; }
登錄后復(fù)制
輸出
The input value is: 0 The output value is: false
登錄后復(fù)制
與前面的示例不同,我們?cè)谳敵隽髦蝎@取輸入布爾值,然后將該值轉(zhuǎn)換為字符串。 solve() 函數(shù)返回一個(gè)字符串值,我們將該值存儲(chǔ)在字符串函數(shù)的 op 變量中。
結(jié)論
我們討論了將二進(jìn)制布爾值轉(zhuǎn)換為字符串的各種方法。當(dāng)我們處理數(shù)據(jù)庫(kù)或與一些基于 Web 的 API 交互時(shí),這些方法非常有用。 API或數(shù)據(jù)庫(kù)方法可能不接受布爾值,因此使用這些方法我們可以將其轉(zhuǎn)換為字符串值,因此也可以使用任何接受字符串值的方法。
以上就是C++程序?qū)⒉紶栕兞哭D(zhuǎn)換為字符串的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.xfxf.net其它相關(guān)文章!