Veröffentlicht 26. Juli 200223 j Hi! Habe folgendes Problem: Ich hab 2 Arrays von [10] Stellen! Wie vergleiche ich diese Arrays miteinander?? Danke!
26. Juli 200223 j Hallo, hab was gefunden: -------------------------------- strcmp prüft, ob zwei Zeichenketten lexikografisch gleich sind. int strcmp (const char *s1, const char *s) liefert : 0 wenn s1 gleich s2 > 0 wenn s1 lexikografisch größer s2 < 0 wenn s1 lexikografisch kleiner s2 Tschö mit ööö :marine
26. Juli 200223 j Original geschrieben von Big Bundy Hallo, hab was gefunden: -------------------------------- strcmp prüft, ob zwei Zeichenketten lexikografisch gleich sind. Vorsicht! strcmp darf nur zum Vergleichen von Strings verwendet werden. Für Arrays allgemein ist es völlig ungeeignet, weil strcmp aufhört, sobald es ein Array-Element mit dem Wert 0 findet. Das ist bei Strings gewollt, weil das Nullzeichen die Stringende-Markierung darstellt. Bei Arrays wird das problematisch, weil strcmp u.U. zu früh, oder, was noch viel schlimmer ist, zu spät mit dem Vergleich aufhört. Die einzige Methode, zwei Arrays zu vergleichen, ist mit einer Schleife: bool arraysgleich = true; for( int i=0; i<arraygroesse; i++ ) { if( array1[i] != array2[i] ) { arraysgleich = false; break; } }[/CODE]
26. Juli 200223 j Wurde dazu benutzt um 2 Strings miteinander zu vergleichen! (Hab mich etwas ungenau ausgedrückt) Für alle die es interessiert, hier ein BSP: ____________________________________________________ #include <string.h> #include <stdio.h> #define TRUE 1 #define FALSE 0 int StringCompare(char *s1, char *s2); main() { char One[] = "BigBundy"; char Two[] = "BigBunny"; int Ret; Ret = StringCompare(One, Two); if (Ret == TRUE) { puts("The Strings match"); } else { puts("The Strings do not match"); } } /**************************************************************/ int StringCompare(char *s1, char *s2) { int Ret; if (strcmp(s1, s2)) { Ret = 0; } else { Ret = 1; } return (Ret); } ____________________________________________________ Bis dann!
26. Juli 200223 j Original geschrieben von Big Bundy Wurde dazu benutzt um 2 Strings miteinander zu vergleichen!Na, dann ist ja gut int StringCompare(char *s1, char *s2) { int Ret; if (strcmp(s1, s2)) { Ret = 0; } else { Ret = 1; } return (Ret); }Das ist aber umständlich Wie wärs damit: int StringCompare(char *s1, char *s2) { return 0 == strcmp( s1, s2 ); }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.