2016-12-21 5 views
0

Ich benutze C++ in QT !!! Ich habe eine Zeichenfolge, die einen Wert enthält, den ich in einem Vektor mit zwei Gleitkommazahlen speichern muss. Die Werte, die im ersten Vektor gespeichert werden müssen, sind mit einem ';' getrennt. Zeichen und nach einem Wert, der im zweiten Vektor gespeichert werden muss, gibt es ein ':' Zeichen. Also muss ich erkennen, wo das Trennzeichen ist und im Zeichen des ersten Fließkomma das Zeichen zwischen ':' und ';' und im zweiten Vektor das Zeichen zwischen ':' und ';'Wie man einen QString aufteilt und einen Teil der Zeichenkette in einem float-Vektor speichert

Können Sie mir helfen?

Beispiel meiner QString: 10, 2: 56; 12: 10; 89:

Vektor, der ich möchte: Erstens: 10,56,10 Sekunde: 2,12,89

+0

Wenn jemand anderes Ihre Arbeit tut, was tragen Sie? Wirst du dafür bezahlen? – Ripi2

Antwort

0

Zuerst müssen Sie sie über die .split-Methode von QString aufteilen, das Ergebnis der Split-Methode ist ein QStringList-Objekt, dann können Sie auf geteilte Literale mit der .at (N) -Methode zugreifen. Nachdem Sie auf die erste Nummerngruppe zugegriffen haben, müssen Sie sie erneut aufteilen und schließlich auf jedes Teil einzeln zugreifen. .at (N) Methode gibt ein QString, so dass Sie es konvertieren über .toFloat zu schweben() -Methode

QString str = "10;2:56;12:10;89:"; 
QStringList strSplited = str.split(':'); 
QString numberGroup = strSplited.at(0); 
float ac = numberGroup.split(';').at(0).toFloat(); 
float bc = numberGroup.split(';').at(1).toFloat(); 
+0

Vielen Dank! Ich versuche es jetzt !! :) –

Verwandte Themen