QStringを逆にする簡単なコードがいくつかあります。
const QString reverse_qstring(const QString& str_in)
{
QString out;
Q_FOREACH(const QChar c, str_in) {
out.push_front(c);
}
return out;
}
コマンドラインから非ASCII文字でテキストを入力すると、期待どおりに動作します。
"¿como estás?" : "?sátse omoc¿"
ただし、次の単体テストを行うと(QTestLibを使用):
QCOMPARE(reverse_qstring(QString("¿como estás?")), QString("?sátse omoc¿"));
私は得る:
FAIL! : program::test_qstring() Compared values are not the same
Actual (reverse_qstring(QString("??como est??s?"))): ?s??tse omoc??
Expected (QString("?s??tse omoc??")): ?s??tse omoc??
何か案は?