Boolske variabler i C ++ er binære data som kan være sanne eller usant, mens strengvariabler representerer en sekvens av alfabetet, tall, så vel som spesialtegn. Kompilatoren støtter ikke oversettelse fra streng til boolsk, men det er flere teknikker for å gjøre det.
I denne artikkelen vil vi se på forskjellige metoder for å konvertere strengverdien til en boolsk verdi i C++.
Hvordan konvertere strengen til den boolske verdien i C++?
Vi vurderer teknikken, som er ganske enkel. Vi godtar en verdi som er en streng og konverterer dette til en boolsk verdi i flere metoder. En generalisert algoritme er gitt nedenfor:
Nå skal vi forklare de mulige metodene for å konvertere en strengverdi til en boolsk verdi i C++.
1: Bruke Stoi () -funksjon
I noen tilfeller kan strengverdien være 0 eller 1. I den situasjonen kan vi bruke stoi () Funksjon for å konvertere strengnummeret til et heltall og deretter til en boolsk. De stoi () Funksjon endrer strengverdier til heltall, som deretter kan konverteres til booleanere ved bruk av eksplisitt typecasting. Tenk på eksemplet som illustrerer bruken av stoi () funksjon for å konvertere strengverdi til boolsk verdi.
#inkludere
#inkludere
ved hjelp av navneområdet STD;
bool my_function (String str)
retur (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;
retur 0;
I det medfølgende eksemplet kode, my_function Funksjon tar en streng som inngang og returnerer en boolsk verdi ved å konvertere strengen til et heltall ved hjelp av stoi () funksjon og deretter kaste den til en boolsk ved hjelp av (bool) typecast. Hovedfunksjonen ringer my_function med strengen “11”, som konverteres til heltallverdien 11 og deretter støpt til den boolske verdien True. Til slutt skrives inngangs- og utgangsverdiene ut til konsollen ved hjelp av cout.
Produksjon
2: Bruke strengsammenligning
Vi vil bruke denne teknikken for å utføre den grunnleggende streng -sammenligningen for å konvertere en strengverdi til en boolsk verdi. Hvis strengens verdi er 'falsk', returneres verdien 0; Alternativt returneres verdien 1. For eksempel:
#inkludere
#inkludere
ved hjelp av navneområdet 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 = "falsk";
bool output2 = my_function (input2);
cout<< "The input string value is: " << input2 << endl;
cout << "The output bool value is: " << output2 << endl;
retur 0;
I dette eksemplet definerer vi en funksjon som kalles my_function som tar en const -referanse til et strengargument og returnerer en boolsk verdi basert på om strengen inneholder teksten “True” eller sifferet “1”. Funksjonen bruker ganske enkelt strengsammenligning for å sjekke om inngangsstrengen samsvarer med en av disse verdiene, og returnerer sann eller falsk tilsvarende.
Produksjon
3: Bruke likestillingsoperatør
Vi kan bruke strengobjektets (==) operatør for å bestemme om verdien på strengen er “0” eller ikke. Hvis det er "0", konverteres det til den boolske verdien falsk; Ellers konverteres det til den boolske verdien. La oss se på et eksempel:
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet 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;
retur 0;
Ovennevnte kode viser konvertering av en streng til en boolsk verdi. Den initialiserer først en strengvariabel 'inngang' med verdien “0”. Den konverterer deretter denne strengen til en boolsk verdi ved hjelp av uttrykket !(input == “0”). Til slutt sender den ut inngangs- og utgangsverdiene ved hjelp av COUT -setningen. Boolalpha -manipulatoren brukes til å sende ut den boolske verdien som "sann" eller "falsk" i stedet for 1 eller 0.
Produksjon
4: Bruke istringStream () -funksjon
Ved hjelp av denne metoden vil vi konstruere et istringStream -objekt og initialisere det ved hjelp av den gitte strengverdien i denne metoden. Så, fra dette istringstrømobjektet, hent den boolske verdien. Hvis strengen inneholdt en numerisk verdi, men ikke 0, vil den boolske verdien være sann. Ellers er det hentede boolresultatet usant. La oss se et eksempel:
#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet 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;
retur 0;
Ovennevnte kode leser en strenginngang “1” og konverterer den til en boolsk verdi ved bruk av IstringStream (). BOOL -utgangsvariabelen er initialisert, men ikke tildelt en verdi før IstringStream () brukes til å lese inngangsverdien. Den boolske verdien sendes deretter ut ved hjelp av cout.
Produksjon
Konklusjon
Når tredjepartsbiblioteker eller APIer brukes i et prosjekt, er det nødvendig å konvertere en strengverdi til en boolsk verdi. Noen API -er eller biblioteker produserer i strengformat, og vi må konvertere strengverdiene til Boolean for å gjøre resultatene kompatible. For å utføre det har vi diskutert forskjellige metoder sammen med eksempler i denne artikkelen for å konvertere en streng til en boolsk verdi i C++.