Länge eines Strings ermitteln

Der GCC Compiler gibt Warnungen aus, wenn man eine Funktion überschreibt, die er bereits kennt - auch wenn die entsprechenden Include-Dateien nicht eingebunden wurden. Daher sollten wir - um die Kompatibilität nicht zu verlieren - die Funktion nicht strlen sondern z.B. mystrlen benennen.

int mystrlen(const char* str)
{
    int i=0;
    while (str[i])
        i++;
    return i;
}

Die Länge eines String zu ermitteln ist recht einfach, da man nur die Anzahl der Zeichen (also die Anzahl der Array-Felder) zählen muss, bis ein Nullbyte ('\0') kommt. Es sind auch Varianten mit Zeigerarithmetik möglich:

int mystrlen(const char* str)
{
    int i=0;
    while (*(str+i)!='\0')
        i++;
    return i;
}

Zu Beachten ist, dass wir einen const char* übergeben, also einen Zeiger auf eine (im Prinzip) konstante Zeichenkette. Das heißt, dass wir innerhalb der Funktion die Zeichenkette nicht verändern können. Da wir das hier auch überhaupt nicht wollen, sollten wir also const char* verwenden, damit uns der Compiler darauf aufmerksam macht, wenn wir doch (durch Programmierfehler) versuchen den String zu verändern.