Strings vergleichen=> C-Frage

Gast #79539
Lesenswert?

Hi,

ich habe folgendes programmiert. Im Visual Studio klappt es so wie ich
mir das vorstelle. Aber im CodeVision kommt immer Folgender Fehler:
function parameter #1 incompatible with its declaration. ??

char Zeichen[20];

if ( (strcmp("ABC",Zeichen)) == 0 )

Hat jemand eine Idee?

Danke,
Timo
Gast #79541
Lesenswert?

Hi,

also ich fülle Zeichen[20] mit Zeichen aus dem UART.

interrupt [UART_RXC] void uart_rx_isr(void)
{
  Zeichen[i] = UDR;
  i++;

  if ( UDR == 0x0A )
  {
  i=i-2;
  Zeichen[i]=0x00;
  NeueDaten = 1;
  i=0;
  }
}
Gast #79542
Lesenswert?

Ich nehme an, dass vom UART kein Stringabschluss als letztes Zichen
kommt, dies wird aber von strcmp benötigt. Deshalb müsstest Du hinter
dem letzten zeichen vom UART noch ei \0 anhängen.
Gast #79544
Lesenswert?

Hallo
Versuch es mal so. Codevision dürfte dann nicht mehr meckern.

char abc[]="ABC";
char Zeichen[20];
if ( (strcmp("abc",Zeichen)) == 0 )

Ob die Zeichenkette als gleich erkannt wird, wenn über die UART ABC
empfangen wird weiß ich nicht. Wie Jürgen schon schreibt,ist so ein
Problem mit der /0

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