Rai*_*kas 3 c++ string character-encoding
所以我需要看看我的角色是否是一封信.我尝试使用isalpha()函数,但是,如果我尝试传递非拉丁字母(例如ą,č,ę,ė,į,š,ų,ū,ž)我得到一个错误,这似乎表明isalpha函数只接受ASCII码中0到255之间的字符.有没有办法解决这个问题?
Fre*_*son 10
您可以使用的语言环境版本std::isalpha.以链接参考为例:
#include <iostream>
#include <locale>
int main()
{
const wchar_t c = L'\u042f'; // cyrillic capital letter ya
std::locale loc1("C");
std::cout << "isalpha('??', C locale) returned "
<< std::boolalpha << std::isalpha(c, loc1) << '\n';
std::locale loc2("en_US.UTF8");
std::cout << "isalpha('?', Unicode locale) returned "
<< std::boolalpha << std::isalpha(c, loc2) << '\n';
}
Run Code Online (Sandbox Code Playgroud)
输出:
isalpha('??', C locale) returned false
isalpha('?', Unicode locale) returned true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |