Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ string(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

malloc(3C)

setlocale(3C)

strxfrm(3C)

string(5)

string(3C)                                                       string(3C)

NAME
     string: strcat, strdup, strncat, strcmp, strncmp, strcpy, strncpy,
     strlen, strchr, strrchr, strpbrk, strspn, strcspn, strtok, strstr -
     Zeichenketten bearbeiten

SYNTAX
     #include <string.h>

     char *strcat(char *s1, const char *s2);

     char *strdup(const char *s1);

     char *strncat(char *s1, const char *s2, sizet n);

     int strcmp(const char *s1, const char *s2);

     int strncmp(const char *s1, const char *s2, sizet n);

     char *strcpy(char *s1, const char *s2);

     char *strncpy(char *s1, const char *s2, sizet n);

     sizet strlen(const char *s);

     char *strchr(const char *s, int c);

     char *strrchr(const char *s, int c);

     char *strpbrk(const char *s1, const char *s2);

     sizet strspn(const char *s1, const char *s2);

     sizet strcspn(const char *s1, const char *s2);

     char *strtok(char *s1, const char *s2);

     char *strstr(const char *s1, const char *s2);

BESCHREIBUNG
     Die Argumente s, s1 und s2 zeigen auf Zeichenketten. Die Funktionen
     strcat(), strncat(), strcpy(), strncpy() und strtok() verändern die
     Zeichenkette s1. Diese Funktionen prüfen nicht, ob das Array, auf das
     s1 zeigt, über seine Grenzen hinaus beschrieben wird.

     strcat() hängt eine Kopie der Zeichenkette s2, einschließlich des
     abschließenden Nullbytes, am Ende der Zeichenkette s1 an. strncat()
     hängt maximal n Bytes an. Die Funktionen liefern einen Zeiger auf das
     mit einem Nullbyte abgeschlossene Ergebnis. Das erste Byte von s2
     überschreibt das Nullbyte am Ende von s1.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

string(3C)                                                       string(3C)

     strcmp() vergleicht die Argumente und liefert eine ganze Zahl zurück,
     die kleiner, gleich oder größer als 0 ist, abhängig davon, ob s1 lexi-
     kographisch kleiner, gleich oder größer als s2 ist. strncmp() führt
     denselben Vergleich aus, beschränkt sich dabei jedoch auf maximal n
     Bytes. Bytes, die nach einem Nullbyte stehen, werden nicht verglichen.

     strcpy() kopiert die Zeichenkette s2 nach s1, einschließlich des
     abschließenden Nullbytes; nachdem das Nullbyte kopiert wurde, stoppt
     der Kopiervorgang. strncpy() kopiert genau n Bytes, wobei Teile von s2
     abgeschnitten werden, oder, falls notwendig, Nullbytes zu s1 hinzuge-
     fügt werden. Das Ergebnis ist nicht mit einem Nullbyte abgeschlossen,
     wenn die Länge von s2 größer oder gleich n Bytes ist. Jede Funktion
     liefert s1 zurück.

     strdup() liefert einen Zeiger auf eine neue Zeichenkette zurück, wel-
     che eine Kopie der Zeichenkette ist, auf die s1 zeigt. Der Speicher-
     platz für die neue Zeichenkette wird mit malloc(3C) zugewiesen. Wenn
     die neue Zeichenkette nicht angelegt werden kann, wird ein Nullzeiger
     zurückgegeben.

     strlen() berechnet die Anzahl der Bytes in der Zeichenkette, auf die s
     zeigt, ohne abschließendes Nullbyte.

     strchr() (oder strrchr()) liefert einen Zeiger auf das erste (letzte)
     Auftreten von c (umgewandelt in char) in der Zeichenkette s; tritt c
     nicht auf, so wird ein Nullzeiger zurückgegeben. Das Nullbyte, welches
     eine Zeichenkette abschließt, wird als Teil der Zeichenkette betrach-
     tet.

     strpbrk() liefert einen Zeiger auf das erste Auftreten eines Bytes aus
     s2 in der Zeichenkette s1; ist in s1 kein Byte aus s2 enthalten, so
     wird ein Nullzeiger zurückgegeben.

     strspn() liefert die Länge von s1 zurück. Zur Anzeige eines Fehlers
     ist kein Rückgabewert reserviert.

     strcspn() berechnet die Länge des größten Anfangssegments der Zeichen-
     kette, auf die s1 zeigt, und die nur aus den Bytes besteht, die nicht
     in der Zeichenkette enthalten sind, auf die s2 zeigt.

     strtok() verarbeitet eine Zeichenkette s1, die aus einer Folge von
     null oder mehr Texttokens besteht, die durch eine oder mehrere Bytes
     aus der Trennzeichenkette s2 getrennt sind. Der erste Aufruf, bei dem
     die Zeichenkette s1 angegeben wird, liefert einen Zeiger auf das erste
     Byte des ersten Tokens zurück und schreibt ein Nullbyte in die Zei-
     chenkette s1 sofort hinter das zurückgelieferte Token. Die Funktion
     verwaltet die Position in der Zeichenkette zwischen mehreren Aufrufen
     [deshalb muß eine Zeichenkette ganz abgearbeitet sein, bevor strtok()
     mit einer neuen Zeichenkette aufgerufen werden kann], so daß spätere
     Aufrufe (die als erstes Argument einen Nullzeiger enthalten) die Zei-
     chenkette s1 direkt nach dem Token bearbeiten. Auf diese Weise kann
     die komplette Zeichenkette s1 verarbeitet werden, bis kein Token mehr


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

string(3C)                                                       string(3C)

     verfügbar ist. Die Trennzeichenkette s2 kann von Aufruf zu Aufruf
     variieren. Ist kein Token mehr in s1 vorhanden, wird ein Nullzeiger
     zurückgeliefert.

     strstr() findet das erste Auftreten der Zeichenkette s2 innerhalb der
     Zeichenkette s1 (ohne das abschließende Nullbyte). strstr() liefert
     einen Zeiger auf die gefundene Zeichenkette beziehungsweise einen
     Nullzeiger zurück, wenn die Zeichenkette nicht gefunden wurde. Wenn s2
     auf eine Zeichenkette der Länge 0 zeigt (d. h. die leere Zeichen-
     kette), liefert die Funktion s1 zurück.

FEHLER
     Die Funktion strdup() kann bei folgender Bedingung fehlschlagen:

     ENOMEM    Der verfügbare Speicherplatz reicht nicht aus.

RÜCKGABEWERT
     Die Funktion strcat() liefert s1 zurück. Zur Anzeige eines Fehlers ist
     kein Rückgabewert reserviert.

     Bei erfolgreicher Ausführung liefert die Funktion strdup() einen Zei-
     ger auf eine neue Zeichenkette zurück. Andernfalls liefert sie einen
     Nullzeiger zurück und setzt errno zur Anzeige des Fehlers.

     Die Funktion strncat() liefert s1 zurück. Zur Anzeige eines Fehlers
     ist kein Rückgabewert reserviert.

     Bei erfolgreicher Ausführung liefert strcmp() eine ganze Zahl größer,
     gleich oder kleiner als 0 zurück, wenn die Zeichenkette, auf die s1
     zeigt, größer, gleich oder kleiner als die Zeichenkette ist, auf die
     s2 zeigt.

     Bei erfolgreicher Ausführung liefert strncmp() eine ganze Zahl größer,
     gleich oder kleiner als 0 zurück, wenn das möglicherweise nulltermi-
     nierte Array, auf das s1 zeigt, größer, gleich oder kleiner als das
     möglicherweise nullterminierte Array ist, auf das s2 zeigt.

     Die Funktion strcpy() liefert s1 zurück. Zur Anzeige eines Fehlers ist
     kein Rückgabewert reserviert.

     Die Funktion strncpy() liefert s1 zurück. Zur Anzeige eines Fehlers
     ist kein Rückgabewert reserviert.

     Die Funktion strlen() liefert die Länge von s zurück. Zur Anzeige
     eines Fehlers ist kein Rückgabewert reserviert.

     Bei erfolgreicher Ausführung liefert strchr() einen Zeiger auf das
     Byte beziehungsweise einen Nullzeiger zurück, wenn das Byte nicht
     gefunden wurde.





Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

string(3C)                                                       string(3C)

     Bei erfolgreicher Ausführung liefert strrchr() einen Zeiger auf das
     Byte beziehungsweise einen Nullzeiger zurück, wenn c in der Zeichen-
     kette nicht vorkommt.

     Bei erfolgreicher Ausführung liefert strpbrk() einen Zeiger auf das
     Byte beziehungsweise einen Nullzeiger zurück, wenn kein Byte aus s2 in
     s1 vorkommt.

     Die Funktion strspn() liefert die Länge von s1 zurück. Zur Anzeige
     eines Fehlers ist kein Rückgabewert reserviert.

     Die Funktion strcspn() liefert die Länge von s1 zurück. Zur Anzeige
     eines Fehlers ist kein Rückgabewert reserviert.

     Bei erfolgreicher Ausführung liefert strtok() einen Zeiger auf das
     erste Byte eines Token zurück. Wenn kein Token vorhanden ist, gibt
     strtok() einen Nullzeiger zurück.

     Bei erfolgreicher Ausführung liefert strstr() einen Zeiger auf die
     gefundene Zeichenkette beziehungsweise einen Nullzeiger zurück, wenn
     die Zeichenkette nicht gefunden wurde.

HINWEISE
     Jede dieser Funktionen geht standardmäßig von der internationalen
     C-Umgebung aus. Bei einigen internationalen Umgebungen sollte vor der
     Übergabe der Zeichenketten an die Funktionen die Funktion strxfrm()
     auf die Zeichenketten angewendet werden.

SIEHE AUCH
     malloc(3C), setlocale(3C), strxfrm(3C), string(5).
























Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026