如何在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