?
Zeichenketten werden mit einem sogenannten Nullzeichen abgeschlossen,
dem '\0'.
Am Ende einer jeden (gültigen) Zeichenkette steht also dieses Nullzeichen.
Das Zählen der Zeichen Zeichenkette funktioniert nun so, das man in einer
Schleife der Reihe nach 'in jeden Buchstaben reinguckt'
und prüft ob es das Nullzeichen ist.
Nebenbei lässt man einen Zähler laufen.
Für jedes Zeichen, das kein Nullzeichen ist, erhöht man den Zähler um 1.
Findet man das Nullzeichen, ist man am Ende der Zeichenkette und die
Schleife wird unterbrochen. Der Zählerstand, also die Länge der Zeichenkette
wird zurückgegeben.
unsigned myStrlen( char* p )
{
unsigned n=0;
while(*(p+n)) n++;
return n;
}
#include <limits.h> // INT_MAX
int myStrlenImproved( char* p )
{
int n=0;
while( *(p+n) && n<INT_MAX ) n++;
if ( n == INT_MAX )
{
fprintf( stderr, "String-length out of scope or not terminated.");
return -1;
}
return n;
}
int main()
{
char* s = "Dummdiedummdiedumm...Keeeeekse !";
printf("%d\n", myStrlen(s) );
printf("%d\n", myStrlenImproved(s) );
return 0;
}
MFG Dr. S.