In C++ bestehen boolesche Variablen aus Binärdaten wahr oder falsch, und Zeichenfolgenvariablen sind Folgen aus Buchstaben, Zahlen und Sonderzeichen. Der Compiler selbst kann einen String nicht in einen booleschen Wert konvertieren, es gibt jedoch mehrere Möglichkeiten, diese Konvertierung durchzuführen. Wir untersuchen verschiedene Methoden zum Konvertieren von Zeichenfolgenwerten in boolesche Werte.
Wenn wir über den Algorithmus nachdenken, ist er ziemlich einfach. Wir nehmen einen String-Wert und wandeln ihn auf verschiedene Weise in einen booleschen Wert um.
Boolalpha ist ein Stream-I/O-Manipulator, der zur Manipulation boolescher und alphanumerischer Werte verwendet werden kann. Istringstream ist ein String-Stream, der zum Implementieren verschiedener Funktionen in Zeichenströmen verwendet wird. Da boolalpha mit Streams arbeitet, kann es mit isringstream verwendet werden, um String-Werte in boolesche Werte umzuwandeln.
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 diesem Beispiel nehmen wir einen String-Wert als Eingabe. Anschließend verwenden wir ein isringstream-Objekt, um den Zeichenfolgenwert zu enthalten, und konvertieren ihn dann mit dem Boolalpha-Modifizierer in eine boolesche Variable. Zum Vergleich drucken wir die Eingabe- und Ausgabewerte aus.
Im nächsten Beispiel haben wir einen einfachen String-Vergleich durchgeführt, um einen String-Wert in einen booleschen Wert umzuwandeln. Wenn der String-Wert gleich „false“ ist, wird 1 zurückgegeben Beachten Sie, dass dies für alle Zeichenfolgen außer „false“ „true“ zurückgibt. Diese Methode ist jedoch am einfachsten zu implementieren.
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
Im vorherigen Beispiel haben wir nur „true“ in boolesche „1“ und „false“ in boolesche „0“ umgewandelt. In manchen Fällen kann der String-Wert nun 0 oder 1 sein. In diesem Fall können wir die Funktion stoi verwenden, um den String-Wert in eine Ganzzahl und dann in einen booleschen Wert umzuwandeln. Die Funktion stoi konvertiert einen String-Wert in eine Ganzzahl und mithilfe der expliziten Typkonvertierung können wir den Wert in einen booleschen Wert konvertieren.
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
Wir nehmen als Eingabe einen String, der jeden Wert „true“, „1“, „false“ oder „0“ enthalten kann. Die ersten beiden Methoden konvertieren „wahr“ oder „falsch“ in 1 bzw. 0. Wenn wir „true“ oder „false“ durch „1“ oder „0“ ersetzen, funktioniert es genauso. Wenn wir im dritten Beispiel jedoch „1“ oder „0“ in „true“ oder „false“ ändern, funktioniert dies nicht, da die Stoi-Funktion eine Zeichenfolge, die keine alphanumerischen Zeichen enthält, nicht in einen ganzzahligen Wert umwandeln kann und daher nicht in einen ganzzahligen Wert konvertiert werden kann ein boolescher Wert. Je nach Anwendungsfall müssen wir also die beste Methode ermitteln.
Bei der Verwendung einiger Bibliotheken oder APIs von Drittanbietern in bestimmten Projekten ist eine Konvertierung von Zeichenfolgen in boolesche Werte erforderlich. Einige APIs oder Bibliotheken geben im String-Format aus. Um das Ergebnis kompatibel zu machen, müssen wir den String-Wert in einen booleschen Wert konvertieren.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Konvertieren einer Variablen vom Typ „String' in einen booleschen Typ. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!