Forum: Compiler & IDEs Wert nach bestimmten zeichen speichern


von Hahner (Gast)


Lesenswert?

Hallo zusammen,
ich möchte eine UART "Command list" implementieren.
Hat jemand von euch eine einfache Lösung für das speichern einen 
Variable (als float/double) nach einem bestimmten zeichen.

Bsp:
Empfangen: set_temp=13.123
gespeichert werden soll 13.123 als double

Ich bin auf der suche nach einer einfachen und übersichtlichen Lösung.

Hoffe jemand von euch kann mir helfen

Gruß Hahner

von Udo S. (urschmitt)


Lesenswert?

atof()
oder brauchst du es in Lisp?

von Hahner (Gast)


Lesenswert?

Ok befindet sich in stdlib.h und passt ganz gut.

Gibt es noch eine Funktion welche die Zeichen vor den Zahlen (also bis 
zum '=') ingnoriert?

Gruß Hahner

von Uwe (de0508)


Lesenswert?

Das sollt man als C-Programmierer kennen.

sscanf()

oden man schreibt sich einen kleinen endlichen Automaten für diese 
Aufgabe.

.

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

char cmd[32];
float zahl;

sscanf( "set_temp=13.123", "%[^=]=%f", cmd, &zahl);

von Klaus W. (mfgkw)


Lesenswert?

oder man sucht mit strchr() nach dem '=' und lässt ab dem Zeichen 
dahinter (also ...+1) mit atof() oder strtod() konvertieren.

Das würde das Programm deutlich kleiner machen, falls man die 
scanf-Konsorten nicht ohnehin noch für etwas anderes braucht.

von Udo S. (urschmitt)


Lesenswert?

Klaus Wachtler schrieb:
> oder man sucht mit strchr() nach dem '=' und lässt ab dem Zeichen
Oder man schreibt eine kleine Funktion mit einem for und einem if selber 
wenn man strchr() nicht kennt.
Der Hahner braucht auf jeden Fall ein gutes C Buch und muss es auch 
lesen.
Grundlagen!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.