herch Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 Hi! Habe folgendes Problem: Ich hab 2 Arrays von [10] Stellen! Wie vergleiche ich diese Arrays miteinander?? Danke! Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 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 Zitieren
Klotzkopp Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 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] Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 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! Zitieren
Klotzkopp Geschrieben 26. Juli 2002 Geschrieben 26. Juli 2002 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 ); } Zitieren
herch Geschrieben 26. Juli 2002 Autor Geschrieben 26. Juli 2002 Tja, man lernt halt (fast) jeden Tag was dazu:marine Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.