Versionsnummern in C ++ vergleichen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Vergleichen Sie Versionen als Zeichenfolgen 4 Antworten

Unser Professor möchte, dass wir ein Programm schreiben, um zwei Versionsnummern wie 0.1 <0.2 oder 1 <1.1 zu vergleichen. Es gibt auch einige Tricks wie .0.4 <.1. Meine Idee ist es also, zuerst zu beurteilen, ob die Zahl als Punkt beginnt. Wenn ja, füge ich ihr eine 0 hinzu. Danach entferne ich andere Punkte als den ersten. Dann konvertiere ich einen String in eine Zahl und vergleiche sie. Das mache ich im ersten Schritt.

string numb1,numb2;
if(numb1[0]=='.')
{
    numb1 ="0"+ numb1;
}

Ich mache dasselbe mit der zweiten Nummer. Und jetzt brauche ich Hilfe, um zu zeigen, wie ich die Punkte mit Ausnahme des ersten entferne. Unser Professor möchte, dass wir diese spezielle Funktion verwenden: int compareVersions (string ver1, string ver2). Wenn ver1> ver2: gebe 1 zurück, wenn ver1 <ver2: gebe -1 zurück, sonst gebe 0 zurück.

Übrigens kann ein Teil der Visionsnummer sehr lang sein wie 2.3.2.2.3.1.1.5.3.5.6.2 oder 1.1.1.1.1.1.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage