mikrocontroller.net

Forum: Compiler & IDEs Probleme beim Strings vergleichen


Autor: Loipe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe probleme beim vergleichen zweier Strings.

Einen String lege ich wie folgt fest.

char String1[]={0xBC,0x11,0x0A,0x02,0x00,0x09,0x80,0x32);

dann bekomme ich mit der UART den gleichen String übermittelt wie
String1.

Dann Vergleiche ich diese mit

if(!strncmp(String1,UARTString,8)
{
  ...
}

Wenn ich jetzt anstatt der 8 eine 4 eingebe, dann sind die Strings
gleich. Gebe ich eine Zahl ab 5 ein dann sind sie ungleich.
Kann das an der 0x00 im String legen, oder habe ich einen anderen
Fehler.

MfG Loipe

Autor: Jochen Pernsteiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In C werden Zeichenketten mit dem Nullbyte abgeschlossen.
strncmp hört beim Nullbyte zum Vergleichen auf.

Die Funktion, die Du brauchst, ist "memcmp".

Autor: Loipe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde ich dann mal probieren.

Danke

MfG Alex

Autor: Mories (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
soll das 5. Zeichen Leerzeichen sein?

Dann musst du 0x20 nehmen.

Gruß Mories

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.