Все просто (сложно) - кодировка введенных символов не совпадает с кодировкой исходников программы.
Вы видимо пишите консольную программу под виндой - тут это типичная проблема для новичков, т.к. в русской винде в консоли возможны 2 стандартные кодировки cp1251 и cp866, причем по умолчанию используется cp866 (по умолчанию - это когда вы просто запустите cmd.exe). Проверить текущую установленную кодировку консоли из самой консоли можно командой chcp, ею же можно и изменить кодировку.
Кодировка исходников может быть вооще какой угодно, кроме вас ее никто не знает.
Для простоты, чтобы у вас заработала программа перекодируйте исходники в cp866 и пересоберите ее.
Но это будет работать лишь до той поры пока вы запускаете программу на русской винде и пока кодировка консоли в ней cp866.
Нормальный подход в этом случае:
1. писать исходники в UTF8,
2. узнать текущую кодировку консоли,
3. перед выводом любого текста перекодировать текст из UTF8 в кодировку консоли,
4. при вводе текста с консоли перекодировать из кодировки консоли в UTF8, и только после этого с текстом можно совершать какие-то действия, например strcmp().
5. в коде для хранения строк использовать wchar_t и wstring, а не char и string.