En C++, les variables booléennes sont constituées de données binaires vraies ou fausses, et les variables de chaîne sont des séquences de lettres, de chiffres et de caractères spéciaux. Le compilateur lui-même ne peut pas convertir une chaîne en booléen, mais il existe plusieurs façons d'effectuer cette conversion. Nous explorons diverses méthodes de conversion de valeurs de chaîne en valeurs booléennes.
Si on réfléchit à l'algorithme, c'est assez simple. Nous prenons une valeur de chaîne et la convertissons en valeur booléenne en utilisant divers moyens.
Boolalpha est un manipulateur d'E/S de flux qui peut être utilisé pour manipuler des valeurs booléennes et alphanumériques. Istringstream est un flux de chaînes utilisé pour implémenter différentes fonctions sur les flux de caractères. Puisque boolalpha fonctionne avec les flux, il peut être utilisé avec isringstream pour convertir les valeurs de chaîne en valeurs booléennes.
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
Dans cet exemple, nous prenons une valeur de chaîne en entrée. Nous utilisons ensuite un objet isringstream pour contenir la valeur de chaîne, puis utilisons le modificateur boolalpha pour la convertir en variable booléenne. Nous imprimons les valeurs d'entrée et de sortie à des fins de comparaison.
Dans l'exemple suivant, nous avons effectué une comparaison de chaîne de base pour convertir une valeur de chaîne en valeur booléenne. Si la valeur de chaîne est égale à « faux », alors 0 est renvoyé ; sinon, 1 est renvoyé ; a noté que cela renvoie vrai pour toutes les chaînes autres que « faux ». Mais cette méthode est la plus simple à mettre en œuvre.
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
Dans l'exemple précédent, nous avons uniquement converti "true" en booléen "1" et "false" en booléen "0". Désormais, dans certains cas, la valeur de la chaîne peut être 0 ou 1. Dans ce cas, nous pouvons utiliser la fonction stoi pour convertir la valeur de chaîne en entier puis en valeur booléenne. La fonction stoi convertit une valeur de chaîne en entier et en utilisant une conversion de type explicite, nous pouvons convertir la valeur en valeur booléenne.
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
Nous prenons en entrée une chaîne qui peut contenir n'importe quelle valeur "vrai", "1", "faux" ou "0". Les deux premières méthodes convertissent respectivement « vrai » ou « faux » en 1 et 0. Si on remplace « vrai » ou « faux » par « 1 » ou « 0 », cela fonctionnera de la même manière. Mais dans le troisième exemple, si nous changeons « 1 » ou « 0 » en « vrai » ou « faux », cela ne fonctionnera pas car la fonction stoi ne peut pas convertir une chaîne qui ne contient pas de caractères alphanumériques en valeur entière et ne peut donc pas être convertie en valeur entière. une valeur booléenne. Ainsi, en fonction du cas d’utilisation, nous devons déterminer la meilleure méthode à utiliser.
Lors de l'utilisation de certaines bibliothèques ou API tierces dans des projets spécifiques, une conversion de chaîne en booléen est requise. Certaines API ou bibliothèques génèrent au format chaîne, afin de rendre les résultats compatibles, nous devons convertir la valeur de chaîne en valeur booléenne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!