В недавней статье я рассказал, как вывести на экран командной строки русский текст, но как же быть, если мы собираемся работать с кириллицей в строках?
В этом нам поможет функция 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;
}
Если скомпилировать этот код, то на экран выведется русский текст из строки. Также, после преобразования можно выполнять различные логические операции над строками, например сравнение уже на кириллице, и т. д.
Комментарии к статье: 12
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.