Русский текст в строках на C++

12 комментариев

В недавней статье я рассказал, как вывести на экран командной строки русский текст, но как же быть, если мы собираемся работать с кириллицей в строках?

В этом нам поможет функция CharToOem(), а если быть точнее — ее производная — CharToOemA(), для преобразования строки в ANSI кодировку нам понадобится дополнительный символьный массив, давайте рассмотрим исходный код:

#include <iostream>
#include <windows.h> // необходима для функции CharToOem
using namespace std;

int main()
{
    setlocale(0, "");
    char * str = "Вывод русского текста из строки!"; // иницализируем строку
    char * tmp = new char [50]; // инициализируем дополнительный массив
    CharToOemA(str, tmp); // преобразовываем
    cout << str << endl; // теперь выводим нашу строку на экран
    delete [] tmp; // удаляем дополнительный массив
    return 0;
}

Если скомпилировать этот код, то на экран выведется русский текст из строки. Также, после преобразования можно выполнять различные логические операции над строками, например сравнение уже на кириллице, и т. д.

Подробный мануал по кириллице в консоли Windows.

Комментарии к статье: 12

Подождите, загружаются комментарии...

Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.

Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.