www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 Arrays auf Gleichheit prüfen


Autor: Human Sourcecode (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe 2 Arrays,
beide uint_8 mit 255 Felder.

Diese sollen auf gleichheit abgeprüft werden.

Gibt es da eine fertige Funktion oder muss ich das selber amchen,.

for (i=0;i<=sizeof(array-1);i++)
(
if (array1[i]==array2[i])
{
richtig++;
}
else
{
fehler++;
}
)

oder wie würdet ihr das machen?

wie kann ich hier quelltext als quelltext markieren, so dass der code 
nacher syntaxgehighlitet wird?

Danke

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es da eine fertige Funktion...
In C? Nein.

>wie kann ich hier quelltext als quelltext markieren, so dass der code
>nacher syntaxgehighlitet wird?
Siehe:
http://www.mikrocontroller.net/articles/Formatieru...

Autor: tuppes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du nur wissen willst, ob die Array-Inhalte gleich oder verschieden 
sind, kannst du die Funktion memcmp verwenden.

Wenn du wissen willst, wie viele Bytes gleich oder verschieden sind: 
Dafür gibts nichts Fertiges.

> for (i=0;i<=sizeof(array-1);i++)

Ich vermute, du meinst

for (i=0;i<=sizeof(array)-1;i++)

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> for (i=0;i<=sizeof(array-1);i++)

>Ich vermute, du meinst

>for (i=0;i<=sizeof(array)-1;i++)

Einfach wird das Konstrukt so:
i=0;
do
{
  ...
}
while ( ++i != sizeof(array) );

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibt es da eine fertige Funktion oder muss ich das selber amchen,.
Ja, "memcmp" in string.h oder memory.h

for (i=0;i<sizeof(array1);i++)
{
   if (array1[i]!=array2[i])
     fehler++;
}

> Danke


Bitte

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tuppes schrieb:
> Wenn du nur wissen willst, ob die Array-Inhalte gleich oder verschieden
> sind, kannst du die Funktion memcmp verwenden.
>
> Wenn du wissen willst, wie viele Bytes gleich oder verschieden sind:
> Dafür gibts nichts Fertiges.
>
>> for (i=0;i<=sizeof(array-1);i++)
>
> Ich vermute, du meinst
>
> for (i=0;i<=sizeof(array)-1;i++)

Und wenn er sich noch das unsägliche <= zu gunsten von < abgewöhnt, gibt 
es dieses Problem gleich erst gar nicht.

  for( i = 0; i < sizeof(array); ++i )
    mach was mit array[i]

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.