Datentypen in "C", Teil 2

Vektoren (Arrays)

Ein Array ist eine Anhäufung mehrerer Datenelemente gleichen Typs, welche im Speicher zusammengehalten wird.

C kennt eindimensionale und mehrdimensionale Arrays.
Eine Variable mit Namen intarr, die Platz für 10 Integerwerte reserviert, wird dabei folgendermassen definiert:

         int intarr[10];

Das erste Element in diesem Array wird mit intarr[0] angesprochen und das letzte Element mit intarr[9].
Überhaupt werden Arrays in C immer von 0 aus indiziert.

Mehrdimensionale Arrays werden definiert, indem der ersten Grössenangabe weitere Angaben folgen, die wiederum in eckige Klammern eingeschlossen sind.

         int     array2dim[3][5];

Die gezeigte Definition reserviert Speicherplatz für eine Matrix mit 3 Zeilen und 5 Spalten. Jede Zelle bietet Platz für einen Integerwert.
Die einzelnen Zellen werden wie folgt durchnumeriert:

        

 

Character-Array (String)

Das Character-Array nimmt in C eine bestimmte Stellung ein. Es dient nämlich als Ersatz für den in C nicht vorhandenen Datentypen String.

Ein String ist ein Array von Zeichen, welches immer mit einem Byte abgeschlossen wird, welches den Wert 0 hat.

Eine Funktion, welche die Länge eines Strings bestimmt, könnte somit folgendermassen festgelegt werden:

int stringlen (char stringarray[])

{

            int        i;

            i = 0;

            while (stringarray[i] != 0) i++;

            return (i);

}

Da ein solcher String in C ein Array von Charactern ist und da in C Arrays nicht einander zugewiesen werden können, können wir Strings nicht direkt einander zuweisen.

         char s1[81], s2[82];

         s1 = "Hallo";                            /* Das ist VERBOTEN */
         s2 = s1;                                   /* Und das ebenfalls */

         strcpy (s1, "Hallo");                 /* Und so */
         strcpy (s2, s1);                         /* ist's richtig */

Für die Manipulation von Strings stellt die C-Standardbibliothek eine Fülle von Funktionen zur Verfügung. Die wichtigsten davon in Kürze:

strcpy (s1, s2)

Kopiert den String s2 nach s1.

strcat (s1, s2)

Hängt den String s2 an s1 an.

strcmp (s1, s2)

Vergleicht die beiden Strings s1 und s2 und gibt das Resultat des Vergleichs als Integerzahl aus.

strchr (s, c)

Liefert einen Zeiger auf das erste Vorkommen des Zeichens c im String s oder NULL, wenn c in s nicht vorkommt.

strlen (s)

Gibt die Länge des Strings s zurück.

Um mit diesen Funktionen arbeiten zu können muss die Headerdatei string.h in die eigene Quelldatei eingebunden werden:

#include <string.h>