a
не совпадает с 'a'
a
является идентификатором
'a'
это символ
Вы хотите сопоставить это, если содержимое переменной char dopt
является любым из символов. Поэтому вам нужно сравнить значения символов ASCII, которые можно найти, поместив символ в одинарные кавычки.
Следовательно
if (dopt == a || A)
{ dbref();}
a
и A
обрабатываются как две отдельные переменные (имена), которые не объявляются (по крайней мере локально).
Так должно быть
if (dopt == 'a' || 'A')
{ dbref();}
Здесь 'a'
и 'A'
- символьные константы, а не имена переменных.
НО 'a'
|| 'A'
всегда равно 1, потому что ||
- логический оператор ИЛИ. Поэтому dopt
всегда будет ложным (почти). Но если вы хотите создать такой эффект, что если dopt
равно 'a'
или 'A'
, то позвоните dbref ()
, тогда вам нужно сделать следующее:
if ((dopt == 'a') || (dopt == 'A'))
{ dbref();}
или также
if (toupper (dopt) == 'A') // similar with tolower ()
{ dbref();}