C では、ブール変数は true または false のバイナリ データで構成され、文字列変数は文字、数字、および特殊文字のシーケンスです。コンパイラ自体は文字列をブール値に変換できませんが、この変換を実行するにはいくつかの方法があります。文字列値をブール値に変換するさまざまな方法を検討します。
アルゴリズムについて考えると、それは非常に単純です。文字列値を取得し、さまざまな手段を使用してブール値に変換します。
アルゴリズム (一般化)
- 文字列変数の入力を取得します。
- 文字列値 (true または false) をブール値に変換します。
- 出力値。
booalpha と isringstream を使用する
Boolalpha は、ブール値と英数字の値を操作するために使用できるストリーム I/O マニピュレーターです。 Istringstream は、文字ストリームにさまざまな関数を実装するために使用される文字列ストリームです。 boolalpha はストリームで動作するため、isringstream とともに使用して文字列値をブール値に変換できます。
###文法###
リーリー
###アルゴリズム###
文字列変数の入力を取得します。
値を isstringstream オブジェクトに入力し、ブールアルファを使用して値をブール変数に割り当てます。
- 出力値。
-
###例###
リーリー
###出力###
リーリー
この例では、文字列値を入力として受け取ります。次に、isringstream オブジェクトを使用して文字列値を格納し、boolalpha 修飾子を使用してそれをブール変数に変換します。比較のために入力値と出力値を出力します。 -
文字列比較を使用する
次の例では、基本的な文字列比較を行って文字列値をブール値に変換しました。文字列値が 'false' に等しい場合は 0 が返され、それ以外の場合は 1 が返されます。これは「false」以外のすべての文字列に対して true を返すことに注意してください。ただし、このメソッドは実装が最も簡単です。
Syntax
リーリー
###アルゴリズム###
文字列変数 ip の入力を取得します。
ブール変数演算を使用します。
ip が "false" と同じ場合、
op = false
###さもないと、
-
op = true-
-
opの値を表示します。 -
###例###
リーリー
###出力###
リーリー
std::stoiを使用する
- 前の例では、「true」をブール値「1」に変換し、「false」をブール値「0」に変換するだけでした。場合によっては、文字列値が 0 または 1 になることがあります。この場合、stoi 関数を使用して文字列値を整数に変換し、次にブール値に変換します。 stoi 関数は文字列値を整数に変換し、明示的な型変換を使用して値をブール値に変換できます。
###文法###
リーリー
###アルゴリズム###
-
文字列変数 ip の入力を取得します。
ブール変数演算を使用します。 -
stoi(ip) の結果として値を明示的に bool に変換します。
opの値を表示します。
###例###
リーリー
###出力###
リーリー
###結論は###
入力として文字列を受け取ります。この文字列には、「true」、「1」、「false」、「0」のいずれかの値が含まれます。最初の 2 つのメソッドは、「true」または「false」をそれぞれ 1 と 0 に変換します。 「true」または「false」を「1」または「0」に置き換えても、同じように機能します。ただし、3 番目の例では、「1」または「0」を「true」または「false」に変更すると、stoi 関数は英数字を含まない文字列を整数値に変換できないため、機能しません。ブール値。したがって、ユースケースに応じて、使用する最適な方法を決定する必要があります。
特定のプロジェクトで特定のサードパーティ ライブラリまたは API を使用する場合、文字列からブール値への変換が必要です。一部の API またはライブラリは文字列形式で出力します。結果に互換性を持たせるために、文字列値をブール値に変換する必要があります。
以上が文字列型変数をブール型に変換するC++プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。