Maison  >  Article  >  développement back-end  >  Programme C++ pour convertir une variable de type chaîne en type booléen

Programme C++ pour convertir une variable de type chaîne en type booléen

WBOY
WBOYavant
2023-09-15 17:49:021176parcourir

Programme C++ pour convertir une variable de type chaîne en type booléen

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.

Algorithme (généralisé)

  • Obtenir une entrée dans une variable de chaîne.
  • Convertissez une valeur de chaîne (vrai ou faux) en valeur booléenne.
  • Valeur de sortie.

Utilisez boolalpha et isringstream

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.

Grammaire

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

Algorithme

  • Obtenir une entrée dans une variable de chaîne.
  • Mettez la valeur dans un objet isstringstream et utilisez boolalpha pour attribuer la valeur à la variable booléenne.
  • Valeur de sortie.

Exemple

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

Sortie

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.

Utiliser la comparaison de chaînes

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.

Syntaxe

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

Algorithme

  • Obtenez une entrée dans la variable de chaîne ip.
  • Utilisation d'opérations de variables booléennes.
  • Si ip est identique à "false", alors
    • op = faux
  • Sinon,
    • op = vrai
  • Afficher la valeur de l'op.

Exemple

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

Sortie

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

Utilisez std :: stoi

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.

Grammaire

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

Algorithme

  • Obtenez une entrée dans la variable de chaîne ip.
  • Utilisation d'opérations de variables booléennes.
  • Convertissez explicitement une valeur en bool à la suite de stoi(ip).
  • Afficher la valeur de l'op.

Exemple

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

Sortie

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

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer