if abfragen von 2 Zeichen sorgt für Verwirrung.

#5760206
Lesenswert?

Hallo
Ich Möchte einen String mit if auf Zeichen untersuchen.
Soll heißen im String steht zb A0 oder B1 C2 bla bla
Jetzt habe ich versucht dies so auszulesen:

Si = A0;
----------------------------
if (Si == 'A0')
{
--mache was
}

if (Si == 'B1')
{
--mache was anderes
}
----------------------------

Das Wird auch kompiliert (arduino IDE) ABER Es scheint IMMER True zu 
sein.
So Das A0 und B1 Immer Ausgeführt werden Welche sich Aber Gegenseitig 
Aufheben.

Wo wäre Mein Denkfehler Zusuchen ?
Vielen Dank
#5760282
Lesenswert?

Nur der vollständigkeitshalber:
Es geht nur um EINEN String welcher sich natürlich Ändert.
Dieser kommt vom seriellen Port (Tut aber nix zur Sache).
Und muss nur mit 2 Zeichen abgeglichen werden.
Hat auch Gar nix mit Irgendwelchen A. Pins zu Tuhen.

Die Zeichen einzeln Auszuwerten hat sich Als zu Fehlerbehaftet erwiesen.

Danke Euch mal Sehen ob Ich Mit strcmp oder strncmp Weiter Komme.
#5760386
Lesenswert?

Klausi Häufchen-Einlauf schrieb:
> Zwei poplige Zeichen könntest du natürlich auch mit zwei Vergleichen
> ((a[0] == b[0]) && (a[1] == b[1])) abfertigen.

Naja, eher sowas wie

a[0] != 0 && a[1] != 0 && b[0] != 0 && b[1] != 0 && a[2] == 0 && b[2] == 
0 && a[0] == b[0] && a[1] == b[1]

Ist das jetzt toller als "!strcmp(a, b)"? Ich denke nicht ...
Persönliche Seite #5760926
Lesenswert?

Wenn die Arduino-Umgebung verwendet wird, kann natürlich die 
String-Klasse verwendet werden, und die wiederum hat den == -Operator 
entsprechend überladen.
1
String text;
2

3
text = "blabla";
4

5
if (text == "blabla")
6
{
7
  // etc.pp.
8
}

Der Code des Threadstarters muss also nur mit den korrekten 
Anführungzeichen geschrieben werden und funktioniert, sofern die 
Variable "Si" vom Typ String ist.

Ist "Si" allerdings ein char-Array, dann funktionieren die Vergleiche 
nicht.

https://www.arduino.cc/en/Tutorial/StringComparisonOperators

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren