So konvertieren Sie eine Zeichenfolge in C in einen booleschen Wert in C++?

So konvertieren Sie eine Zeichenfolge in C in einen booleschen Wert in C++?

Boolesche Variablen in C ++ sind Binärdaten, die wahr oder falsch sein können, während String -Variablen eine Sequenz des Alphabets, Ziffern sowie Sonderzeichen darstellen. Der Compiler unterstützt keine Übersetzung von String nach boolean, aber dafür gibt es mehrere Techniken.

In diesem Artikel werden wir verschiedene Methoden zur Konvertierung des String -Werts in einen booleschen Wert in C untersuchen++.

So konvertieren Sie die Zeichenfolge in den Booleschen Wert in C++?

Wir betrachten die Technik, die recht einfach ist. Wir akzeptieren einen Wert, der eine Zeichenfolge ist, und konvertieren diesen in mehreren Methoden in einen Booleschen Wert. Ein verallgemeinerter Algorithmus ist unten angegeben:

    • Nehmen Sie Daten in eine Zeichenfolgenvariable.
    • Konvertieren Sie einen Stringwert in einen Booleschen.
    • Den Wert ausgeben.

Jetzt werden wir die möglichen Methoden erklären, um einen Stringwert in einen Booleschen Wert in C umzuwandeln++.

    • 1. Verwenden von STOI () -Funktion
      2. Verwenden von String -Vergleich
      3. Verwenden von Gleichstellungsoperator
      4. Verwenden von iStringStream () -Funktion

1: Verwenden von STOI () -Funktion

In einigen Fällen kann der Zeichenfolgenwert 0 oder 1 betragen. In dieser Situation können wir das verwenden Stoi () Funktion zum Umwandeln der String -Nummer in eine Ganzzahl und dann in einen Booleschen. Der Stoi () Funktion ändert Stringwerte in Ganzzahlen, die dann mit expliziten Typen in Booleschen konvertiert werden können. Betrachten Sie das Beispiel, das die Verwendung von veranschaulicht Stoi () Funktion zum Konvertieren des Stringwerts in den booleschen Wert.

#enthalten
#enthalten
Verwenden von Namespace STD;
bool my_function (String str)

return (bool) stoi (str);

int main ()

String input1 = "1";
bool output1 = my_function (input1);
Cout<< "The input string value is: " << input1 << endl;
Cout<< "The output bool value is: " << output1 << endl;
String input2 = "0";
bool output2 = my_function (input2);
Cout<< "The input string value is: " << input2 << endl;
Cout<< "The output bool value is: " << output2 << endl;
Rückkehr 0;


In dem angegebenen Beispielcode der my_function Funktion nimmt eine Zeichenfolge als Eingabe und gibt einen booleschen Wert zurück, indem die Zeichenfolge mithilfe einer Ganzzahl konvertiert wird Stoi () Funktion und dann mit der (bool) typecast (bool) an einen booleschen. Die Hauptfunktion ruft auf my_function mit der Zeichenfolge „11“, die in den Ganzzahlwert 11 umgewandelt wird und dann auf den booleschen Wert True gegossen wird. Schließlich werden die Eingangs- und Ausgangswerte mithilfe von Cout in die Konsole gedruckt.

Ausgang


2: Verwenden Sie den String -Vergleich

Wir werden diese Technik verwenden, um den grundlegenden String -Vergleich für die Konvertierung eines Stringwerts in einen booleschen Wert durchzuführen. Wenn der Wert der Zeichenfolge 'falsch' ist, wird der Wert 0 zurückgegeben. Alternativ wird der Wert 1 zurückgegeben. Zum Beispiel:

#enthalten
#enthalten
Verwenden von Namespace STD;
bool my_function (const string & str)
return str == "true" || STR == "1";

int main ()
String input1 = "true";
bool output1 = my_function (input1);
Cout<< "The input string value is: " << input1 << endl;
Cout << "The output bool value is: " << output1 << endl;
String input2 = "false";
bool output2 = my_function (input2);
Cout<< "The input string value is: " << input2 << endl;
Cout << "The output bool value is: " << output2 << endl;
Rückkehr 0;


In diesem Beispiel definieren wir eine Funktion namens My_function, die einen Const -Verweis auf ein String -Argument nimmt und einen booleschen Wert zurückgibt, basierend darauf, ob der Zeichenfolge den Text „True“ oder die Ziffer „1“ enthält. Die Funktion verwendet lediglich den String -Vergleich, um zu überprüfen, ob die Eingabezeichenfolge mit einem dieser Werte übereinstimmt, und gibt entsprechend den wahren oder falschen zurück.

Ausgang


3: Verwenden von Gleichstellungsoperator

Wir können den Operator des String -Objekts (==) verwenden, um festzustellen, ob der Wert der Zeichenfolge „0“ ist oder nicht. Wenn es sich um „0“ handelt, wird es in den booleschen Wert falsch konvertiert; Andernfalls wird es in den booleschen Wert wahr umgewandelt. Schauen wir uns ein Beispiel an:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String input1 = "0";
bool output1 = !(input1 == "0");
Cout<< "The input value is: " << input1 << endl;
Cout<< boolalpha<<"The output value is: " << output1 << endl;
String input2 = "1";
bool output2 = !(input2 == "0");
Cout<< "The input value is: " << input2 << endl;
Cout<< boolalpha<<"The output value is: " << output2 << endl;
Rückkehr 0;


Der obige Code zeigt die Konvertierung einer String in einen booleschen Wert. Es initialisiert zunächst eine String -Variable 'Eingabe' mit dem Wert "0". Anschließend konvertiert diese Zeichenfolge unter Verwendung des Ausdrucks in einen Booleschen Wert !(Eingabe == "0"). Schließlich gibt es die Eingangs- und Ausgangswerte mit der Cout -Anweisung aus. Der Boolalpha -Manipulator wird verwendet, um den Booleschen Wert als „wahr“ oder „falsch“ anstelle von 1 oder 0 auszugeben.

Ausgang


4: Verwenden von iStringStream () -Funktion

Mit dieser Methode konstruieren wir ein iStringstream -Objekt und initialisieren es mit dem angegebenen Zeichenfolgewert in dieser Methode. Rufen Sie dann den Booleschen Wert aus diesem Isstringstream -Objekt ab. Wenn die Zeichenfolge einen numerischen Wert, aber nicht 0 enthielt, ist der boolesche Wert wahr. Andernfalls ist das abgerufene Bool -Ergebnis falsch. Schauen wir uns ein Beispiel an:

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

String input1 = "0";
bool output1;
iStringStream (input1) >> output1;
Cout<< "The input value is: " << input1 << endl;
Cout<< boolalpha<<"The output value is: " << output1 << endl;
String input2 = "1";
bool output2;
iStringStream (input2) >> output2;
Cout<< "The input value is: " << input2 << endl;
Cout<< boolalpha<<"The output value is: " << output2 << endl;
Rückkehr 0;


Der obige Code liest eine String -Eingabe „1“ und konvertiert ihn mit iStringStream () in einen booleschen Wert um. Die BOOL -Ausgangsvariable wird initialisiert, aber keinen Wert zugewiesen, bis iStringStream () verwendet wird, um den Eingangswert zu lesen. Der Boolesche Wert wird dann mit Cout ausgegeben.

Ausgang


Abschluss

Wenn Bibliotheken oder APIs von Drittanbietern in einem Projekt verwendet werden, müssen ein Stringwert in einen booleschen Wert umwandeln. Einige APIs oder Bibliotheken erzeugen im String -Format, und wir müssen die String -Werte in booleschen umwandeln, um die Ergebnisse kompatibel zu machen. Um dies auszuführen, haben wir verschiedene Methoden zusammen mit Beispielen in diesem Artikel erörtert, um eine Zeichenfolge in einen Booleschen Wert in C umzuwandeln++.