Я долго искал способ, чтобы преобразовать строку NON-LATIN в верхний и / или нижний регистр. Кириллица, греч. И ко. Письменные Системы. Другими словами: преобразуйте все символы, которые поддерживают верхний / нижний регистр, в верхний или нижний.
ПРИМЕЧАНИЕ: QString из Qt Framework поддерживает эту функцию. Но я ищу не-Qt решение.
Я пробовал этот кусок кода, и он поддерживает только Basic-Latin (a-z, A-Z), и не поддерживается. (???) Почему такой минималистичный?
#include <iostream>
#include <string>
#include <algorithm>
#include <boost/algorithm/string.hpp>
using std::cout;
using std::cerr;
using std::endl;
using std::cin;
typedef std::string string;
static string text;
int main(void)
{
cout << "Enter String: ";
cin >> text;
for (size_t i = 0; i < text.length(); i++)
text[i] = std::toupper(text.at(i));
cout << "Upper Case (libstdc++): " << text << endl;
cout << "Upper Case (libboost): " << boost::to_upper_copy(text) << endl;
}
Я скачал исходный код Qt, но для меня, как для хобби-разработчика, я не могу найти реализации QString, чтобы увидеть, что здесь происходит. И почему он поддерживает только ВСЕ.
Возможно ли использовать стандартный или ускоренный способ преобразования toupper или tolower всех этих персонажей, которые его поддерживают?
Сторонняя библиотека тоже подойдет.
PS: простите за мой английский.
Задача ещё не решена.
Других решений пока нет …