1

文字がアルファベットの文字であるかどうかをC++でチェックする方法は? 一般的に、次のようなものが必要です。

bool is_german(wchar_t ch);
bool is_russian(wchar_t ch);
bool is_japanese(wchar_t ch);

や。。など。

編集1。必要なすべての言語のすべての文字セットを定義せずにそれを行うことはできますか? または、次のようなものを持つライブラリがあるかもしれません。

std::vector alphabet = GetEnglishAlphabet(); // アルファベット = {L'a', L'b', L'c', ...}

編集2。誰かが私が見つけたに興味を持っている場合

スクリプト QChar::script() const

4

3 に答える 3

1

std::isalphadefined inを使用できます<locale>。最初に正しいロケールに設定することを忘れないで ください http://www.cplusplus.com/reference/locale/isalpha/

編集:

std::locale loc("en-US");
bool isAlpha1 = std::isalpha('a', loc);
bool isAlpha2 = std::isalpha('&', loc);
bool isAlpha3 = std::isalpha('1', loc);
bool isAlpha4 = std::isalpha('Ж', loc); //cyrilic alphabet, but not US

言語文字列は次の場所にあります。

http://msdn.microsoft.com/en-us/library/39cwe7zf.aspx

http://msdn.microsoft.com/en-US/goglobal/bb896001.aspx

于 2014-02-14T07:41:53.797 に答える
0

ublock_getCode関数を持つICUライブラリもあります。ただし、同じ文字が異なるアルファベットで使用されているため、正確な言語はわかりません。

于 2014-02-14T07:37:49.593 に答える