我正在寻找一种将NON-LATIN字符串转换为高位和/或低位的方法。 Cyrillic-,Greek-和co。写作系统。换句话说:将支持大/小写的所有字符转换为大写或小写。
注意:Qt Framework中的QString支持此功能。但我正在寻找一种非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实现,看看这里发生了什么。为什么它只支持ALL。
是否可能有std或boost方式转换toupper或者支持所有支持它的角色?
第三方图书馆也可以。
PS:对不起我的英文。