As variáveis booleanas em C ++ são dados binários que podem ser verdadeiros ou falsos, enquanto as variáveis de string representam uma sequência do alfabeto, números e caracteres especiais. O compilador não suporta a tradução de string para booleana, mas existem várias técnicas para fazê -lo.
Neste artigo, examinaremos vários métodos para converter o valor da string em um valor booleano em c++.
Como converter a string para o valor booleano em C++?
Consideramos a técnica, o que é bastante simples. Aceitamos um valor que é uma string e convertemos isso em um valor booleano em vários métodos. Um algoritmo generalizado é dado abaixo:
Agora vamos explicar os métodos possíveis para converter um valor de string em um valor booleano em c++.
1: Usando a função stoi ()
Em alguns casos, o valor da string pode ser 0 ou 1. Nessa situação, podemos usar o stoi () função para converter o número da string em um número inteiro e depois para um booleano. O stoi () A função altera os valores de string para números inteiros, que podem ser convertidos em booleanos usando o tipo de tipo explícito. Considere o exemplo que ilustra o uso de stoi () função para converter o valor da string em valor booleano.
#incluir
#incluir
usando namespace std;
bool my_function (string str)
retornar (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;
retornar 0;
No código de exemplo fornecido, o my_function A função pega uma string como entrada e retorna um valor booleano convertendo a string em um número inteiro usando stoi () Funcionar e depois lançá -lo para um booleano usando o tipo (bool). As principais chamadas de função my_function com a string "11", que é convertida para o valor inteiro 11 e depois lançado para o valor booleano true. Finalmente, os valores de entrada e saída são impressos no console usando cout.
Saída
2: Usando comparação de string
Usaremos esta técnica para conduzir a comparação básica de string para converter um valor de string em um valor booleano. Se o valor da sequência for 'falso', o valor 0 será retornado; Alternativamente, o valor 1 é retornado. Por exemplo:
#incluir
#incluir
usando namespace std;
bool my_function (const string & str)
retornar 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;
retornar 0;
Neste exemplo, definimos uma função chamada my_function que requer uma referência const a um argumento de string e retorna um valor booleano com base se a string contém o texto "True" ou o dígito "1". A função simplesmente usa a comparação de string para verificar se a string de entrada corresponde a um desses valores e retorna verdadeiro ou falso.
Saída
3: Usando o operador de igualdade
Podemos usar o operador do objeto String (==) para determinar se o valor da string é "0" ou não. Se for "0", é convertido no valor booleano false; Caso contrário, é convertido para o valor booleano verdadeiro. Vejamos um exemplo:
#incluir
#incluir
#incluir
usando 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;
retornar 0;
O código acima demonstra a conversão de uma string em um valor booleano. Primeiro inicializa uma variável de string 'entrada' com o valor "0". Em seguida, ele converte essa string em um valor booleano usando a expressão !(input == "0"). Finalmente, ele gera os valores de entrada e saída usando a instrução Cout. O manipulador de Boolalpha é usado para gerar o valor booleano como "verdadeiro" ou "falso" em vez de 1 ou 0.
Saída
4: Usando a função istringStream ()
Usando esse método, construiremos um objeto IStringStream e inicializamos usando o valor de string fornecido neste método. Então, a partir deste objeto ISTRINGSTREAM, recupere o valor booleano. Se a string continha um valor numérico, mas não 0, o valor booleano será verdadeiro. Caso contrário, o resultado de bool recuperado é falso. Vamos procurar um exemplo:
#incluir
#incluir
#incluir
usando 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;
retornar 0;
O código acima lê uma entrada de string "1" e a converte em um valor booleano usando o istringStream (). A variável de saída BOOL é inicializada, mas não atribuída um valor até que o istringStream () seja usado para ler o valor de entrada. O valor booleano é então emitido usando o cout.
Saída
Conclusão
Quando bibliotecas ou APIs de terceiros são utilizadas em um projeto, é necessário converter um valor de string em um valor booleano. Algumas APIs ou bibliotecas produzem em formato de string, e devemos converter os valores da string em boolean para tornar os resultados compatíveis. Para executá -lo, discutimos vários métodos, juntamente com exemplos deste artigo para converter uma string em um valor booleano em c++.