Strcmp not working with multiple conditions combined with logical OR statement ( || )

The logical expression state ≠ "A" or state ≠ "B" can never evaluate to false, because state cannot be equal to "A" and "B" simultaneously.

(By the way, if this is some kind of state machine, use an enum, not C-strings.)