Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 13 Arrays
  gp 13.1 Arrays deklarieren
  gp 13.2 Initialisierung und Zugriff auf Arrays
    gp 13.2.1 Gültigkeitsbereich von Arrays
  gp 13.3 Arrays vergleichen
  gp 13.4 Anzahl der Elemente eines Arrays ermitteln
  gp 13.5 Übergabe von Arrays an Funktionen
  gp 13.6 Arrays aus Funktionen zurückgeben
  gp 13.7 Programmbeispiel zu den Arrays
  gp 13.8 Einlesen von Array-Werten
  gp 13.9 Mehrdimensionale Arrays
  gp 13.10 Mehrdimensionale Arrays initialisieren
    gp 13.10.1 Tic Tac Toe
    gp 13.10.2 Dreidimensionale Arrays
  gp 13.11 Übergabe von zwei- bzw. mehrdimensionalen Arrays an Funktionen
  gp 13.12 Arrays in Tabellenkalkulation einlesen (*.CSV–Dateien)
  gp 13.13 Strings/Zeichenketten (char Array)
    gp 13.13.1 Vom String zur Binärzahl
  gp 13.14 Einlesen von Strings
  gp 13.15 Standard-Bibliothek <string.h>
    gp 13.15.1 strcat() – Strings aneinander hängen
    gp 13.15.2 strchr() – ein Zeichen im String suchen
    gp 13.15.3 strcmp() – Strings vergleichen
    gp 13.15.4 strcpy() – einen String kopieren
    gp 13.15.5 strcspn() – einen Teilstring ermitteln
    gp 13.15.6 strlen() – Länge eines Strings ermitteln
    gp 13.15.7 strncat() – String mit n Zeichen aneinander hängen
    gp 13.15.8 strncmp() – n Zeichen von zwei Strings miteinander vergleichen
    gp 13.15.9 strncpy() – String mit n Zeichen kopieren
    gp 13.15.10 strpbrk() – Auftreten bestimmter Zeichen suchen
    gp 13.15.11 strrchr() – das letzte Auftreten eines bestimmten Zeichens im String suchen
    gp 13.15.12 strspn() – erstes Auftreten eines Zeichens, das nicht vorkommt
    gp 13.15.13 strstr() – String nach Auftreten eines Teilstrings durchsuchen
    gp 13.15.14 strtok() – String anhand bestimmter Zeichen zerlegen


Galileo Computing - Zum Seitenanfang

13.3 Arrays vergleichen  toptop

Mithilfe des Indizierungsoperators [] können Sie zwei int-Arrays auf Gleichheit überprüfen:

/* array6.c */
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main(void) {
   int i;
   int array1[MAX], array2[MAX];
   for(i = 0; i < MAX; i++) {
         array1[i] = i;
         array2[i] = i;
   }
   array2[5] = 100; /* array2 an Pos. 5 verändern */
   for(i = 0; i < MAX; i++) {
      if( array1[i] == array2[i] )
         continue;
      else {
         printf("Unterschied an Position %d\n",i);
         break;
      }
   }
   return EXIT_SUCCESS;
}

Mit der Zeile

if( array1[i] == array2[i] )

werden die einzelnen Werte array1[i] und array2[i] miteinander verglichen. Es werden also alle Elemente der Arrays durchlaufen und verglichen. Folgendes funktioniert allerdings nicht:

if( array1 == array2 )

Ganze Arrays lassen sich nicht miteinander vergleichen. In diesem Fall wurden lediglich zwei Speicheradressen verglichen. Für den Vergleich vollständiger bzw. kompletter Arrays gibt es folgende Funktion:

#include <string.h>
int memcmp(const void *adr1, const void *adr2, size_t n);

Diese Funktion vergleicht n Zeichen aus Adresse adr1 und Adresse adr2. Sind beide Speicherbereiche gleich, liefert die Funktion den Wert 0 zurück (weitere Beschreibung zu dieser Funktion siehe Abschnitt 13.14). Hierzu ein Beispiel mit der Funktion memcmp():

/* array7.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 10
int main(void) {
   int i;
   int array1[MAX];
   int array2[MAX];
   for(i = 0; i < MAX; i++) {
         array1[i] = i;
         array2[i] = i;
   }
   array2[5] = 100; /* Verändert array2 an Pos. 5 */
   if(memcmp(array1, array2, sizeof(array1)) == 0 )
      printf("Beide Arrays haben den gleichen Inhalt\n");
   else
      printf("Die Arrays sind unterschiedlich\n");
   return EXIT_SUCCESS;
}

Internes   Natürlich gilt bei memcmp() im Vergleich zur for-Schleife dasselbe wie schon bei memset(). Auch hierbei ist u. U. die Funktion memcmp() um einiges schneller als der Vergleich mit einer for-Schleife, da memcmp() ebenfalls näher an der Hardware operiert.


 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de