如何使用qstring作为char数组

时间:2013-03-31 10:49:06

标签: unicode qstring arrays

我正在尝试编写一个函数,找出这个单词格鲁吉亚语与否。我为拉丁字符写了它,它起作用了。现在我试图改变它以通过char读取QString char并与georgian第一个和最后一个字母进行比较。我怎样才能做到这一点?我做错了什么?

bool Georgianword(QString &sit)
{ int i=0;

      QByteArray ba = sit.toUtf8();
while (i<sit.size())
{
    if (ba[i]<'ა' || ba[i]>'ჰ')
        break;
    i++;
}

return (i==sit.size());

}

1 个答案:

答案 0 :(得分:0)

如果将字符串编码为UTF-8,则处理UTF-8代码单元(单字节可能只是多字节序列的一部分),而不是代码点。最好的解决方案是简单地使用QString迭代器:

for (QString::iterator it = sit.begin(); it != sit.end(); ++it) {
    if (*it < 'ა' || *it > 'ჰ') {
        ...
    }
}