Jak przekonwertować ciąg na wartość logiczną w C++?

Jak przekonwertować ciąg na wartość logiczną w C++?

Zmienne boolejskie w C ++ są danymi binarnymi, które mogą być prawdziwe lub fałszywe, podczas gdy zmienne ciągów reprezentują sekwencję alfabetu, cyfr, a także znaków specjalnych. Kompilator nie obsługuje tłumaczenia z łańcucha na boolean, ale istnieje wiele technik tego.

W tym artykule przyjrzymy się różnym metodom przekształcania wartości ciągów na wartość logiczną w C++.

Jak przekonwertować ciąg na wartość logiczną w C++?

Rozważamy technikę, co jest dość proste. Akceptujemy wartość, która jest ciągiem i przekonwertujemy to na wartość logiczną w kilku metodach. Uogólniony algorytm podano poniżej:

    • Weź dane do zmiennej ciągu.
    • Konwertuj wartość ciągu na logikę.
    • Wydaj wartość.

Teraz wyjaśnimy możliwe metody przekonwertowania wartości ciągu na wartość logiczną w C++.

    • 1. Za pomocą funkcji sttoi ()
      2. Za pomocą porównania ciągów
      3. Za pomocą operatora równości
      4. Za pomocą funkcji iSstringStream ()

1: Za pomocą funkcji STOI ()

W niektórych przypadkach wartość ciągu może wynosić 0 lub 1. W tej sytuacji możemy użyć Stoi () funkcja, aby przekonwertować numer ciągu na liczbę całkowitą, a następnie na logikę. Stoi () Funkcja zmienia wartości ciągów na liczby całkowite, które można następnie przekonwertować na logiczne za pomocą jawnego typu typu. Rozważ przykład, który ilustruje użycie Stoi () funkcja do konwersji wartości ciągu na wartość logiczną.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
bool my_function (string str)

return (bool) stoi (str);

int main ()

String input1 = "1";
bool wyjściowy1 = my_function (input1);
Cout<< "The input string value is: " << input1 << endl;
Cout<< "The output bool value is: " << output1 << endl;
String input2 = "0";
bool wyjściowy2 = my_function (input2);
Cout<< "The input string value is: " << input2 << endl;
Cout<< "The output bool value is: " << output2 << endl;
powrót 0;


W dostarczonym przykładowym kodzie, my_function Funkcja bierze ciąg jako wejście i zwraca wartość logiczną, przekształcając ciąg na liczbę całkowitą za pomocą Stoi () Funkcja, a następnie rzucanie go na boolean za pomocą (bool) typecast. Główna funkcja wywołuje my_function z ciągiem „11”, który jest przekonwertowany na wartość liczb całkowitych 11, a następnie rzucona na wartość logiczna. Wreszcie wartości wejściowe i wyjściowe są drukowane na konsoli za pomocą Cout.

Wyjście


2: Za pomocą porównania ciągów

Użyjemy tej techniki do przeprowadzenia podstawowego porównania ciągów do przekształcenia wartości łańcucha w wartość logiczną. Jeśli wartość ciągu to „Fałsz”, wartość 0 jest zwracana; Alternatywnie, wartość 1 jest zwracana. Na przykład:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
bool my_function (const string & str)
return str == „True” || str == „1”;

int main ()
String input1 = „true”;
bool wyjściowy1 = my_function (input1);
Cout<< "The input string value is: " << input1 << endl;
Cout << "The output bool value is: " << output1 << endl;
String input2 = "false";
bool wyjściowy2 = my_function (input2);
Cout<< "The input string value is: " << input2 << endl;
Cout << "The output bool value is: " << output2 << endl;
powrót 0;


W tym przykładzie definiujemy funkcję o nazwie My_Function, która przyjmuje odniesienie do argumentu ciągów i zwraca wartość logiczną na podstawie tego, czy ciąg zawiera tekst „true”, czy cyfra „1”. Funkcja po prostu używa porównania ciągów, aby sprawdzić, czy ciąg wejściowy pasuje do jednej z tych wartości i odpowiednio zwraca prawda lub false.

Wyjście


3: Korzystanie z operatora równości

Możemy użyć operatora obiektu String (==), aby ustalić, czy wartość ciągu to „0”, czy nie. Jeśli jest to „0”, jest przekonwertowany na wartość logiczną false; W przeciwnym razie jest przekonwertowany na wartość logiczną. Spójrzmy na przykład:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String input1 = "0";
Bool wyjście1 = !(input1 == "0");
Cout<< "The input value is: " << input1 << endl;
Cout<< boolalpha<<"The output value is: " << output1 << endl;
String input2 = "1";
Bool wyjściowy2 = !(input2 == "0");
Cout<< "The input value is: " << input2 << endl;
Cout<< boolalpha<<"The output value is: " << output2 << endl;
powrót 0;


Powyższy kod pokazuje konwersję łańcucha do wartości logicznej. Najpierw inicjuje zmienną ciągną „Wejście” z wartością „0”. Następnie przekształca ten ciąg w wartość logiczną za pomocą wyrażenia !(wejście == „0”). Wreszcie, wyświetla wartości wejściowe i wyjściowe za pomocą instrukcji Cout. Manipulator Boolalpha służy do wyświetlania wartości logicznej jako „prawdziwych” lub „fałszywych” zamiast 1 lub 0.

Wyjście


4: Używanie funkcji iSstringStream ()

Za pomocą tej metody skonstruujemy obiekt IstringStream i zainicjujemy go za pomocą podanej wartości ciągu w tej metodzie. Następnie, z tego obiektu IstringStream, odzyskaj wartość logiczną. Jeśli ciąg zawierał wartość liczbową, ale nie 0, wartość logiczna będzie prawdziwa. W przeciwnym razie odzyskany wynik Bool jest fałszywy. Spójrzmy na przykład:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

String input1 = "0";
Bool wyjściowa 1;
isstringStream (input1) >> wyjście1;
Cout<< "The input value is: " << input1 << endl;
Cout<< boolalpha<<"The output value is: " << output1 << endl;
String input2 = "1";
Bool wyjściowa 2;
isTringStream (input2) >> wyjście2;
Cout<< "The input value is: " << input2 << endl;
Cout<< boolalpha<<"The output value is: " << output2 << endl;
powrót 0;


Powyższy kod odczytuje wprowadzanie ciągu „1” i przekształca go w wartość logiczną za pomocą iSstringStream (). Zmienna wyjściowa BOOL jest inicjowana, ale nie przypisuje wartości, dopóki isstringStream () nie zostanie użyta do odczytu wartości wejściowej. Wartość logiczna jest następnie wyprowadzana za pomocą Cout.

Wyjście


Wniosek

Gdy w projekcie wykorzystywane są biblioteki lub interfejsy API innych firm, konieczne jest przekonwertowanie wartości łańcuchowej na wartość logiczną. Niektóre interfejsy API lub biblioteki wytwarzają w formacie ciągów i musimy przekonwertować wartości ciągów na boolean, aby wyniki były kompatybilne. Aby go wykonać, omówiliśmy różne metody wraz z przykładami w tym artykule, aby przekonwertować ciąg na wartość logiczną w C++.