Языковой стандарт — это уникальная комбинация языка (соглашения о форматировании текста и данных), локальные соглашения региона\страны (локаль) и кодовой страницы (стандарт\название таблицы кодировки).
Кодовая страница — это набор символов, который может содержать числа, знаки пунктуации и другие глифы. Кодовая страница для языкового стандарта "C" (кодовая страница "C") соответствует кодировке ASCII.
Локаль - набор параметров, определяющий региональные настройки пользовательского интерфейса, такие как язык, страна, часовой пояс, набор символов, формат вывода даты, времени, используемая денежная единица.
варианты расширенных таблиц в различных кодовых страницах
Для переключения кодовой страницы можно использовать:
1) команду ОС system(chcp "1251");
1251 - номер таблицы кодовой страницы (возможны 866, 62001 и др. номера страниц)
2) смена локали специальной функцией setlocale(..)
Прототип char *setlocale(int category, const char *locale);
category - Категория, на которую влияет языковой стандарт (конкретно на какие функции влияет),
locale - Указатель языкового стандарта
setlocale( LC_ALL, "<language>_<country>.<code_page>" );
Задает языковой стандарт для языка, страны или региона, а также кодовую страницу, определяемую <language> <country> <code_page> строками, и так можно использовать различные сочетания языка, страны или региона и кодовой страницы.
Иногда проблема с отображением текста не в программе на С, а настройках консоли (установите свойства, нажав на иконку в левом верхнем углу консоли)