Heim  >  Artikel  >  Backend-Entwicklung  >  C++-Programm zum Konvertieren einer Variablen vom Typ „String“ in einen booleschen Typ

C++-Programm zum Konvertieren einer Variablen vom Typ „String“ in einen booleschen Typ

WBOY
WBOYnach vorne
2023-09-15 17:49:021179Durchsuche

C++-Programm zum Konvertieren einer Variablen vom Typ „String“ in einen booleschen Typ

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.

Algorithmus (verallgemeinert)

  • Eingabe in String-Variable abrufen.
  • Konvertieren Sie einen Zeichenfolgenwert (wahr oder falsch) in einen booleschen Wert.
  • Ausgabewert.

Verwenden Sie boolalpha und isringstream

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.

Grammatik

string ip = <string literal>;
bool op;
istringstream(ip) >> std::boolalpha >> op;

Algorithmus

  • Eingabe in String-Variable abrufen.
  • Fügen Sie den Wert in ein isstringstream-Objekt ein und verwenden Sie boolalpha, um den Wert der booleschen Variablen zuzuweisen.
  • Ausgabewert.

Beispiel

#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;
}

Ausgabe

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.

Verwenden Sie den String-Vergleich

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.

Syntax

string ip = <string literal>;
bool op = ip != “false”;

Algorithmus

  • Eingabe in die String-Variable ip abrufen.
  • Verwendung boolescher Variablenoperationen.
  • Wenn ip dasselbe ist wie „false“, dann
    • op = false
  • Andernfalls,
    • op = wahr
  • Zeigen Sie den Wert von op.

Beispiel

#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;
}

Ausgabe

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

Verwenden Sie std::stoi

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.

Grammatik

string ip = <string literal>;
bool op = (bool)stoi(ip);

Algorithmus

  • Eingabe in die String-Variable ip abrufen.
  • Verwendung boolescher Variablenoperationen.
  • Konvertieren Sie einen Wert als Ergebnis von stoi(ip) explizit in bool.
  • Zeigen Sie den Wert von op.

Beispiel

#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;
}

Ausgabe

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

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen