Проверить есть ли в строке кириллица

225
04 декабря 2018, 19:50

Есть код, который переводит верхний регистр в нижний.

#include <algorithm>
#include <iostream>
#include <string>
#include <ctype.h>
int main() {
    std::string text;
    std::cout << "Type text(QWERTY): ";
    std:: getline(std::cin, text);
    std::cout<<text << " - " ;
    std::transform(text.begin(), text.end(), text.begin(), tolower);
    std::cout << text;
return 0;

}

Но, если вводится кириллица, то кириллица не заменяется на нижний регистр. Как сделать проверку, есть ли кириллица или какой способ замены использовать, чтобы не нужно было использовать char и массивы char. Работа только со string

Answer 1

Используйте wstring, wcout, towlower.

std::setlocale(LC_CTYPE, "ru-RU");
std::wstring text = L"ABC АБВ";
std::wcout << text << " - ";
std::transform(text.begin(), text.end(), text.begin(), towlower);
std::wcout << text << std::endl;

Выводит abc абв.

READ ALSO
Конвертация *.raw с камеры GitUp G3 в *.tiff

Конвертация *.raw с камеры GitUp G3 в *.tiff

Всем приветВозникла такая проблема

170
Ошибка 0xc0000135 в QT после переноса проекта

Ошибка 0xc0000135 в QT после переноса проекта

Перенес проект на QT с компьютера с Windows 7 32-bit на ноутбук Windows 10 64-bitНа ноутбуки тот же компилятор, который был на компьютере (Qt_5_9_1_MinGW_32bit)

190
Указатель на буфер, альтернатива на java

Указатель на буфер, альтернатива на java

Вот например на си и с++ я передаю буфер, этот буфер строился из структурыИ вот например я получаю этот буфер по сети, накладываю указатель...

171
Кодировки в Java

Кодировки в Java

Есть блок кода, который считывает строку из файла и строка будет на русском языке, но соответственно в терминале вместо русских буквы - вопросительные...

161