strchr() - bitte um Beispielerklärung
-
Hi, ich hab hier ein Beispiel von www.cplusplus.com irgendwie ist mir hier einiges unkklar es soll ein pointer zurückgegeben werden der auf den ersten charakter zeigt der den Suchkriterin entspricht.
Nur was soll das "pch-str+1" Pointer-String+1 ?? kann mir nicht erklären wieso das funktioniert. Bräuchte also mal wieder eure grauen Zellen.

/* strchr example */ #include <stdio.h> #include <string.h> int main () { char str[] = "This is a sample string"; char * pch; printf ("Looking for 's' character in \"%s\"...\n",str); pch=strchr(str,'s'); while (pch!=NULL) { printf ("found at %d\n",pch-str+1); pch=strchr(pch+1,'s'); } return 0; } Output: Looking for 's' character in "This is a sample string"... found at 4 found at 7 found at 11 found at 18mfg
-
Ich möchte nach 2 Charakteren ssuchen falls der eine vor dem anderen ist soll etwas gemacht werden.
Wie mache ich daraus am einfachsten vergleichbare Integer ? Oder ist hierzu ein anderer Befehl besser geeignet ?
-
Sowas nennt man Zeigerarithmetik. Auf cplusplus.com findest du aber auch ein Tutorial und unter anderem ein Kapitel über Pointer, was dir deine fragen beantworten können sollte:
http://www.cplusplus.com/doc/tutorial/pointers.htmlZu der Berechnung:
pch-str+1 ermittelt in diesem Fall die Position. pch, zeigt irgendwo auf ein Zeichen im char-Array str. Die Adresse von pch ist also größer wie die von str (Anfang des Strings), somit würde pch-str den Index des Zeichens ergeben. +1 bewirkt das nicht der Index angezeigt wird, sondern die Position (Position != Index, aber Position == Index+1).