Programmiersprache C/C++

Funktionen zur Arbeit mit Zeichenketten


strlen

  #include <string.h>

  size_t strlen(const char *s);
Bestimmt die Länge einer Zeichenkette

Rückgabewert:
strlen liefert die Anzahl der Zeichen des Strings s zurück. Das abschließende Nullzeichen wird dabei nicht mitgezählt.


strcat

  #include <string.h>

  char *strcat(char *dest, const char *src);
Beschreibung Verkettung (concatenation): Hängt einen String an einen anderen an.
strcat hängt sämtliche Zeichen von src an die bereits in dest vorhandenen Zeichen an.
Die Länge des resultierenden Strings ist strlen(dest) + strlen(src).

Rückgabewert:
Zurückgeliefert wird ein Zeiger auf den zusammengefügten String.


strchr

  #include <string.h>
  char *strchr(const char *s, int c);
Sucht einen String nach dem ersten Auftreten eines bestimmten Zeichens ab.
strchr sucht den über s angegebenen String nach dem Zeichen c ab, wobei die Suche mit dem ersten Zeichen von s beginnt.
strchr ermittelt das erste Auftreten des Zeichens im String.
Das abschließende Nullzeichen wird zum Inhalt des String gezählt und als letztes verglichen, so daß ein Aufruf wie
  strchr(str, 0)
einen Zeiger auf das abschließende Nullzeichen von str liefert.

Rückgabewert:
strchr liefert einen Zeiger auf die erste Fundstelle des Zeichens c im String s zurück bzw. den Wert NULL, wenn der String dieses Zeichen nicht enthält.


strcpy

  #include <string.h>

  char *strcpy(char *dest, const char *src);
Kopiert einen String in einen anderen.
strcpy kopiert den Inhalt des über src angegebenen Strings in den durch dest angegebenen Speicherbereich.
Das abschließende Nullzeichen von src wird als letztes Zeichen kopiert.

Rückgabewert:
strcpy liefert dest zurück. Beispiel:

  char string[10];
  char *str1 = "abcdefghi";

  strcpy(string, str1);

stpcpy

  #include <string.h>

  char *stpcpy(char *dest, const char *src);
Kopiert einen String in einen anderen.
stpcpy kopiert den Inhalt des durch src angegebenen nullterminierten Strings in den durch dest angegebenen Speicherbereich.
Der Vorgang wird abgebrochen, sobald das abschließende Nullzeichen von src erreicht wird.

Rückgabewert:
stpcpy liefert einen Zeiger zurück, der auf das neue Ende von dest zeigt, also dest + strlen(src).

Portabilität:
nicht in ANSI-C vorgesehen, jedoch in einer Reihe von Systemen verfügbar

stpcpy unterscheidet sich von strcpy durch den Rückgabewert (Zeiger auf das Ende und nicht auf der Anfang der Zeichenkette).


strdup

  #include <string.h>

  char *strdup(const char *s);
Kopiert einen String in einen neuen Speicherbereich.
strdup bestimmt zuerst die Länge des übergebenen String s, reserviert danach mit malloc einen Speicherbereich entsprechender Größe (strlen(s) + 1) und kopiert den Inhalt von s in diesen neu reservierten Speicherbereich.
Der Programmierer muß den Speicher selbst wieder freigeben, wenn dieser nicht mehr benötigt wird.

Rückgabewert:
strdup liefert einen Zeiger auf den neu reservierten Speicherbereich zurück, der den duplizierten String enthält.
Falls nicht genug Platz im Speicher ist (d.h. malloc einen Fehler liefert), dann ist das Funktionsergebnis von strdup NULL.

Portabilität:
nicht in ANSI-C vorgesehen, jedoch in einer Reihe von Systemen verfügbar


strcspn

  #include <string.h>

  size_t strcspn(const char *s1, const char *s2);
Liefert die Länge des Teilstrings zurück, der keines der Zeichen einer bestimmten Zeichenmenge enthält.
strcspn liest den String s1 zeichenweise bis eines der in s2 enthaltenen Zeichen auftritt.
Die Anzahl der in s1 gelesenen Zeichen bildet den Rückgabewert. Das abschließende Nullzeichen wird nicht mitgezählt.
Beide Strings werden durch den Suchvorgang nicht verändert.

Rückgabewert:
strcspn liefert die Länge des Teilstrings von s1 zurück, der nur aus Zeichen besteht, die in s2 nicht vorkommen.


strcmp

  #include <string.h>

  int strcmp(const char *s1, const char *s2);
Vergleicht zwei Strings miteinander.
Beginnend mit dem ersten Zeichen werden die beiden Strings zeichenweise verglichen, bis zwei korrespondierende Zeichen ungleich sind oder das Ende der Strings erreicht wird.

Rückgabewert:
strcmp liefert einen Wert

  < 0   wenn s1 kleiner als s2 ist
  == 0	wenn s1 gleich s2 ist
  > 0	wenn s1 größer als s2 ist

strcoll

  #include <string.h>

  int strcoll(char *s1, char *s2);
Vergleicht zwei Strings.
strcoll vergleicht den String, auf den s1 zeigt, mit dem String, auf den s2 zeigt.
Dabei wird die in der Kategorie LC_COLLATE der aktuellen
Locale-Einstellung gesetzte Vergleichsreihenfolge verwendet.

Rückgabewert:
strcoll liefert einen Wert

  < 0   wenn s1 kleiner als s2 ist
  == 0	wenn s1 gleich s2 ist
  > 0	wenn s1 größer als s2 ist
Beispiel:
  #include <stdio.h>
  #include <string.h>

  int main(void)
  {
    char *one = "Samstag";
    char *two = "Sonntag";
    int check;

    check = strcoll(one, two);
    if (check == 0)
      printf("Die Zeichenketten sind gleich\n");
    if (check < 0)
      printf("%s kommt vor %s\n", one, two);
    if (check > 0)
      printf("%s kommt vor %s\n", two, one);
   
    return 0;
  }

stricmp

  #include <string.h>

  int stricmp(const char *s1, const char *s2);
Vergleicht zwei Strings ohne Unterscheidung zwischen Groß- und Kleinschreibung.
Beginnend mit dem ersten Zeichen wird solange zeichenweise verglichen, bis die korrespondierenden Zeichen ungleich sind oder das Ende der Strings erreicht wird. Beim Vergleich werden Groß- und Kleinbuchstaben nicht unterschieden.

Rückgabewert:
stricmp liefert einen Wert

  < 0	wenn s1 kleiner als s2 ist
  == 0	wenn s1 gleich s2 ist
  > 0	wenn s1 größer als s2 ist

strstr

  #include <string.h>

  char *strstr(const char *s1, const char *s2);
Sucht einen String nach dem Vorkommen eines bestimmten Teilstrings ab.
strstr sucht den über s1 angegebenen String nach dem ersten Vorkommen des Teilstrings s2 ab.

Rückgabewert:
strstr liefert einen Zeiger auf den Beginn von s2 in s1 zurück bzw. den Zeigerwert NULL, wenn s2 in s1 nicht vorkommt.


strlwr

  #include <string.h>

  char *strlwr(char *s);
Konvertiert alle Großbuchstaben in einem String in Kleinbuchstaben.
strlwr konvertiert sämtliche Großbuchstaben des durch s übergebenen Strings in Kleinbuchstaben.
Dabei wird die Kategorie LC_CTYPE der aktuellen
Locale-Einstellung berücksichtigt.
In der Locale-Einstellung "C" (i.a. Standard) werden die Großbuchstaben A bis Z in die Kleinbuchstaben a bis z konvertiert. Andere Zeichen (insbesondere Umlaute) werden nicht berücksichtigt.

Rückgabewert:
strlwr liefert einen Zeiger auf den String s zurück.


strupr

  #include <string.h>

  char *strupr(char *s);
Konvertiert alle Kleinbuchstaben eines String in Großbuchstaben.
strupr konvertiert die Kleinbuchstaben des durch s angegebenen Strings in Großbuchstaben.
Dabei wird die Kategorie LC_TYPE der aktuellen
Localei-Einstellung berücksichtigt.
In der standardmäßigen Locale-Einstellung "C" werden die Buchstaben a bis z in die Buchstaben A bis Z konvertiert und alle anderen Zeichen (insbesondere die deutschen Umlaute) bleiben unverändert.

Rückgabewert:
strupr liefert s zurück.


Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 15.02.1996