在 Qt 中;将 QString 中每个单词的首字母大写的最佳方法是什么?

In Qt; what is the best method to capitalise the first letter of every word in a QString?

我在考虑正则表达式,但它的可读性不高。还有像 s.toUpper() 这样的函数需要考虑,可能还有其他的东西。

那么在 QString 中将单词首字母大写的最佳方法是什么?

使用this example作为参考,你可以这样做:

QString toCamelCase(const QString& s)
{
    QStringList parts = s.split(' ', QString::SkipEmptyParts);
    for (int i = 0; i < parts.size(); ++i)
        parts[i].replace(0, 1, parts[i][0].toUpper());

    return parts.join(" ");
}

完全一样,但写法不同:

QString toCamelCase(const QString& s)
{
    QStringList cased;
        foreach (QString word, s.split(" ", QString::SkipEmptyParts))cased << word.at(0).toUpper() + word.mid(1);

    return cased.join(" ");
}

这会占用更多内存,但没有指针访问(没有括号运算符)。

令人难以置信的 C++/Qt...您只想得到一些用 0x20 排序的字符...