C-Programmierung

Zeichenkettenlänge (strlen)

Variable Zeichenketten | | Zeichenkettenmanipulation

Die Länge einer beliebigen Zeichenkette (d.h. char *) berechnet man durch die Suche nach der finalen 0:

unsigned int strlen(const char *str)
{
   unsigned int len;

   for (len=0; *str++!='\0'; len++);

   return(len);
}

Diese Funktion ist bereits im Header string.h definiert.

Damit kann man eine beliebige Zeichenkette duplizieren:

char *strdup(const char *str)
{
   unsigned int len;
   char *dup;

   len=strlen(str);
   dup=(char *)malloc(len+1);
   memcpy(dup, str, len+1));

   return(dup);
}

Diese Funktion ist ebenfalls im Header string.h definiert.

Fallgrube: Die Funktion strdup() reserviert einen neuen Speicherbereich. Vergisst man diesen nach Benutzung freizugeben, erhält man ein Speicherleck.

Variable Zeichenketten | | Zeichenkettenmanipulation

Options: