En Qt; ¿Cuál es el mejor método para poner en mayúscula la primera letra de cada palabra en un QString?

 C Programming >> Programación C >  >> Tags >> Qt
En Qt; ¿Cuál es el mejor método para poner en mayúscula la primera letra de cada palabra en un QString?


Estoy pensando en expresiones regulares, pero eso no es exactamente legible. También hay funciones como s.toUpper() a considerar, y probablemente otras cosas también.


Entonces, ¿cuál es el mejor método para poner en mayúscula la primera letra de las palabras en un QString?


Respuestas:


Usando este ejemplo como referencia, puede hacer algo como esto:


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(" ");
}

Algunas respuestas de código


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("
");
}
QString capitalise_each_word(const QString&
sentence) { QStringList words = sentence.split("
", Qt::SkipEmptyParts);
for (QString&
word : words)
word.front() = word.front().toUpper();
return words.join("
");
}