formatierte Zeichenkette parsen
-
Hallo zusammen,
ich habe mal wieder ein kleines Problem, das aber sicher leicht lösbar ist:
Ich will ein float aus einem character-pointer "parsen". Das float ist von runden Klammern eingeschlossen und die öffnende Klammer steht an Position i.Beispiel:
char* c = "ab(20.4)c(3)";
i = 1;
Ergebnis:
float result = 20.4f; //das soll es auf jeden Fall seinIch habe es also mal so versucht, leider klappt es nicht ganz :(. Es kommt immer ein falscher float Wert raus (ich denke mal ein zufälliger).
float readParameter(char* s, int& i) { float result; sscanf_s(&s[i+1],"(%f)", &result); return result; }
Weiß jemand von euch weiter?
-
Mal schnell zusammengewürfelt:
const char* c = "ab(20.4)c(3)"; float f; for (unsigned int i = 0; i < 10; i++) if (readParameter (c, i, f)) printf ("%u. Parameter: %f\n", f); bool readParameter (const char* cStr, unsigned int uParam, float& fReturn) { while (*cStr) { if (*cStr == '(' && !uParam--) return (sccanf (cStr, "(%f)", &fReturn) > 0) ? true : false; cStr++; } return false; }