Heim > Backend-Entwicklung > C++ > 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
Freigeben: 2023-09-15 17:49:02
nach vorne
1221 Leute haben es durchsucht

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;
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe

The value of ip is: true
The value of op is: 1
Nach dem Login kopieren

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”;
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe

The input value is: true
The output value is: 1
Nach dem Login kopieren

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);
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Ausgabe

The input value is: 1
The output value is: 1
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage