Go Down

Topic: String abfragen ? (Read 1 time) previous topic - next topic

Arduinokiller

Hallo zusammen,
ich steh mal wieder auf dem Schlauch. Ich möchte einen String nach einem bestimmten Inhalt abfragen und komme nicht weiter. Als Basis verwende ich
ITDB02_Touch_Button Test (von H.K.); wenn auf dem Display z.B. "1000" (Inhalt des Strings) steht, soll nach antippen von "ENTER" ein bestimmter Text auf dem Display erscheinen, ansonsten ein alternativer Text. Mit einer if Abfrage gehts anscheinend nicht (Umwandlung von char* in int* nicht möglich).
Kann mir jemand nen Tipp geben ?
Gruß und Danke

michael_x

#1
Nov 09, 2012, 11:17 am Last Edit: Nov 09, 2012, 11:22 am by michael_x Reason: 1
Quote
Umwandlung von char* in int* nicht möglich

zum Glück, sonst wäre der Fehler nur schwerer zu finden gewesen ... ;)

Hast du den string "1000" nicht noch als Zahl, die du in ein char [] geschrieben hast?

Wenn nicht, gibt es 2 Möglichkeiten sscanf (trickreich, das richtig zu parametrieren)
oder den String Zeichen für Zeichen in eine Ziffer zu wandeln und alle Ziffern zu einer Zahl

Code: [Select]
char* p = "1000";
int number = *p++ - '0'; // number sollte den Wert 1 haben und p auf das nächste Zeichen zeigen
while (*p != 0) number = number*10 + *p++ - '0'; // usw. bis der string zu Ende ist


edit:
- erzeugt Müll wenn der string was anderes ausser Ziffern '0' ... '9' enthält. Nur als Prinzip...
- mit code tags sieht es schöner aus

markbee

Warum nicht einfach atoi nutzen?

michael_x

#3
Nov 09, 2012, 11:33 am Last Edit: Nov 09, 2012, 11:34 am by michael_x Reason: 1
Quote
Warum nicht einfach atoi nutzen?

Stimmt, also

Quote
Wenn nicht, gibt es mindestens 3 Möglichkeiten ...

Arduinokiller

Quote
Hast du den string "1000" nicht noch als Zahl, die du in ein char [] geschrieben hast?

nein, da der Inhalt des strings erst beim Tippen auf dem Touch erzeugt wird.

Quote
erzeugt Müll wenn der string was anderes ausser Ziffern '0' ... '9' enthält. Nur als Prinzip...

in der "Endversion" sollten auch Buchstaben und Zeichen (*, #) abgefragt werden können.

Quote
Warum nicht einfach atoi nutzen?

was bitte ist "atoi" ?

Go Up