Datentypen in "C", Teil 2 |
|
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:
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>
|