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
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
Das sollt man als C-Programmierer kennen. sscanf() oden man schreibt sich einen kleinen endlichen Automaten für diese Aufgabe. .
char cmd[32]; float zahl; sscanf( "set_temp=13.123", "%[^=]=%f", cmd, &zahl);
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.