Parsen eines Strings und betimmte zeichen vollge erkennen
-
hallo leute ich muss für die arbeit eine kleinen Tester bauen
das programm ist schon gut am werden ich komm nur nicht weiter mit der parserei
ich rage aus einem gerät werte ab dir ich vergleichen möchte
es sind alles Strings
z.b.
wenn ich ver? frage bekomme ich 2.0 als antwort also wie kann ich das auswerten ich mache auch abfragen nach Zeit u.s.w.danke für eure hilfe schonmal im vorraus
-
-
char * pch; SendCmd (hcomm, "ver?\r\n", string); pch = strstr (string,"2.0"); if (pch != 2.0){printf("ok "); }
-
professorakiera schrieb:
... if (pch != 2.0) ...
das geht so nicht. pch ist ein 'char*', 2.0 ist eine 'double-konstante'
probier mal so:if (pch && strtod(pch,0) == 2.0) { // ist 2.0 } else { // ist [u]nicht[/u] 2.0 }
-
ich bastel immer noch und mein Programm hängt sich weg wenn kein Connect gefunden wurde oder macht unsinn bitte um hilfe
pch = strstr (string,"CONNECTED"); //if (pch){ *(pch+10)=0; if (strcmp(pch,"CONNECTED")==1) printf("WLAN VERBUNDEN"); else printf("WLAN NICHT VERBUNDEN"); //} // else printf("WLAN Nicht Verbunden");
-
Hi,
strcmp liefert bei Gleichheit eine 0.
char* pch = "XXX" darf nicht beschrieben werden, sonst Programmabsturz.
pch ist schon 0-Terminiert.char buf[] = "XXX" darf beschrieben werden, ist ebenfalls schon 0-Terminiert.
-
proggingmania schrieb:
char* pch = "XXX" darf nicht beschrieben werden, sonst Programmabsturz.
unsinn, sein 'pch' ist der output von 'strstr' und da hängt's davon ab, wo der such-string liegt. ist der in einem beschreibaren bereich dann geht das.
proggingmania schrieb:
char buf[] = "XXX" darf beschrieben werden, ist ebenfalls schon 0-Terminiert.
warum sollte ein array mit 4 elementen nicht beschreiben können?
-
array-freak schrieb:
proggingmania schrieb:
char* pch = "XXX" darf nicht beschrieben werden, sonst Programmabsturz.
unsinn, sein 'pch' ist der output von 'strstr' und da hängt's davon ab, wo der such-string liegt. ist der in einem beschreibaren bereich dann geht das.
Haste Recht, da hab ich mich doof ausgedrückt. Wenn also sein Substring nicht gefunden wird:
pch = strstr (string,"CONNECTED"); //if (pch){ *(pch+10)=0;
Dann iss Essig mit Proggie, gibts nen Absturz.
Und das hier: *(pch+10)=0; ist auch ne ganz wilde Konstruktion. :parray-freak schrieb:
proggingmania schrieb:
char buf[] = "XXX" darf beschrieben werden, ist ebenfalls schon 0-Terminiert.
warum sollte ein array mit 4 elementen nicht beschreiben können?
Weiss nicht, hab ich das behauptet ?
-
proggingmania schrieb:
Und das hier: *(pch+10)=0; ist auch ne ganz wilde Konstruktion. :p
stimmt, muss *(pch+9)=0; heissen.