文字列からブール値を取得したい。文字列は次のようになります。
char *s = "value=TRUE";
値はTRUE
、FALSE
、true
またはfalse
文字列からブール値を直接取得するフォーマット指定子があるかどうか疑問に思っていますか? 文字列を通過してブール値を推測する必要はありません。
私はそのようなものを探しています
bool x;
sscanf(s,"value=%b",&x);
質問は。sscanf とフォーマット指定子を使用して bool 値を直接取得することは可能ですか?
そうでない場合、そのための簡単な方法はありますか?
編集:
応答に基づくと、直接の書式指定子はありません。
ここでは、ブール値を直接取得する簡単な方法の後
char b[8];
if ( sscanf(s,"value=%[TtRrUuEe]",b))
return TRUE;
else
return FALSE;
上記の方法が限られていることは承知しています。どのように改善しますか?
注: 値の文字列にガベージが含まれている場合、デフォルト値は False です。