尽管区域设置设置为俄语,但isalpha()函数允许通过拉丁字母

时间:2019-05-11 07:52:21

标签: c++ locale cyrillic

在我的程序中,我试图计算文本中西里尔字母的频率。

我正在通过以下方式检查该字母是否为西里尔字母:

std::locale loc("Russian");
char monogram;
....
if (isalpha(monogram, loc)) {
....
}

问题是这种情况会导致拉丁字母中的某些字母通过。

通过预先过滤整个文本(这是一个大文件),我不会失去效率。无论如何,除了单调比较文本中的每个字母和字母表中的每个字母以查找匹配项外,我都看不到进行过滤的方法。显然这不是最好的方法...

0 个答案:

没有答案