在 C 中,布林變數由二進位資料 true 或 false 組成,字串變數是字母、數字和特殊字元的序列。編譯器本身無法將字串轉換為布林值,但有多種方法可以執行此轉換。我們探索將字串值轉換為布林值的各種方法。
如果我們考慮一下演算法,那就很簡單了。我們採用字串值並使用各種方式將其轉換為布林值。
Boolalpha 是一個流 I/O 操縱器,可用於操縱布林值和字母數字值。 Istringstream 是一個字串流,用於在字元流上實現不同的功能。由於 boolalpha 與流一起使用,因此它可以與 istringstream 一起使用,將字串值轉換為布林值。
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
In the next example, we have done a basic string comparison to convert a string value into a Boolean value. If the string value is equal to 'false', then 0 is returned; otherwise, 1 is returned. to be noted that this returns true for all strings other than 'false'. But this method is the easiest to implement.
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
在前面的範例中,我們只將“true”轉換為布林值“1”,將“false”轉換為布林值“0”。現在,在某些情況下,字串值可能是 0 或 1。對於這種情況,我們可以使用 stoi 函數將字串值轉換為整數,然後轉換為布林值。 stoi 函數將字串值轉換為整數,並使用明確類型轉換,我們可以將該值轉換為布林值。
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
我們將字串作為輸入,其中可能包含任何值「true」、「1」、「false」或「0」。前兩個方法將「true」或「false」分別轉換為 1 和 0。如果我們用“1”或“0”替換“true”或“false”,它也會以相同的方式運作。但在第三個範例中,如果我們將'1' 或'0' 更改為'true' 或'false',它將不起作用,因為stoi 函數無法將不包含字母數字字元的字串轉換為整數值,因此不能轉換為布林值。因此,根據使用情況,我們必須確定要使用的最佳方法。
在特定專案中使用某些第三方程式庫或 API 時,需要進行字串到布林值的轉換。有些API或函式庫以字串格式輸出,為了讓結果相容,我們必須將字串值轉換為布林值。 ###
以上是C++程式將字串類型變數轉換為布林類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!