如何在C++中检查字符是否是某个字母的字母?
通常我需要这样的东西:

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

等等。

编辑1 。我可以不定义我需要的所有语言的所有字符集来做吗?或也许有一些图书馆像这样:



编辑2 。如果有人对我感兴趣

最佳答案

您可以使用std::isalpha中定义的<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

10-08 04:34