QString überprüfen

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo,

mit C++ kenne ich mich zwar nicht so super aus, aber in C# gibt es die Funktion

bool String.Contains(string value);

Codebeispiel:

string s;
if (s.Contains(".") || s.Contains(","))
{
    //Enthält "." oder ","
}
else
{
    //Enthält weder "." noch ","
}

Die Funktion QString::contains() hilft:

if (s.contains('.') || s.contains(',')) {
    // gesuchtes Zeichen gefunden
}

Zu beachten sind die einzelnen Anführungszeichen, die dazu führen, dass der Overload für einzelne Zeichen gewählt wird. Die Verwendung von "." und "," würde zu einem Aufruf des Overloads für QString führen, dess Konstruktion teurer ist.

Woher ich das weiß:Berufserfahrung

if(str.indexOf(',')>=0 || str.indexOf('.')>=0) { ...

indexOf() liefert einfach die Position des vorgegebenen Zeichens - oder -1, falls nicht vorhanden.

Steht in der Doku zu QString.