Woodstock Geschrieben 8. Januar 2002 Geschrieben 8. Januar 2002 Kann mir jemand von Euch den Gebrauch dieser Stringmanipulation erklären? Ich steige durch die MSDN da einfach mal wieder nicht durch :confused: . Bine Zitieren
Poldi Geschrieben 8. Januar 2002 Geschrieben 8. Januar 2002 der funktion strtok() wird ein strin und ein oder mehrere trennzeichen übergeben. die funktion splittet den zu durchsuchenden string in mehrere "token" (quasi substrings). rückgabewert ist ein pointer zum ersten token, daher muß man diese funktion in eine schleife packen um alle token zu finden. hier ein beispiel aus einer unix-manpage: #include <string.h> #include <locale.h> #include <stdio.h> #define LENGTH 40 main() { char string1[LENGTH], delimiters[LENGTH]; char *pstr ; int counter; (void)setlocale(LC_ALL, ""); printf("Enter the string to be searched: "); if (fgets(string1, LENGTH, stdin) != NULL) { printf("Enter the delimiter(s): "); if (fgets(delimiters, LENGTH, stdin) != NULL) { if ((pstr = strtok(string1, delimiters )) != NULL) { /* pstr points to the first token */ printf("Token 1 is %s\n", pstr); counter = 2; while ((pstr = strtok((char *)NULL, delimiters )) != NULL) { printf("Token %d is %s\n", counter, pstr); counter++; } } } } }[/PHP] ich hoffe das hilft dir weiter! Zitieren
Woodstock Geschrieben 8. Januar 2002 Autor Geschrieben 8. Januar 2002 Etwas schon. Aber immer noch nicht ganz. Ich kann also für den zweiten Parameter in der Klammer nach strtok nur ein Token (also Trennzeichen) oder auch mehrere Verschiedene angeben? Also z.B. "\t" oder auch "22" :confused: ? Hmm, da muss ich mich morgen mal richtig drum kümmern. Danke schon mal. Mal schaun ob ich es jetzt schaffe. Bine Zitieren
Crush Geschrieben 8. Januar 2002 Geschrieben 8. Januar 2002 Ein Token ist ein laut definition eine Zeichenkette, die entweder wahr oder falsch ist, also einen Bool-Wert darstellen soll. Der Bool wird beim Char-Verlgeich der String-Zeichen herangezogen. Bei strtok() ist das Token jedoch auf ein Zeichen begrenzt. Werden mehrer verschiedene Zeichen als String für den Delimiter (als Separatoren) angeben, so wird immer der String bis zum erscheinen des nächsten Zeichens welches im Delimiter definiert ist abgetrennt. Das Ergebnis ist übrigens auch wieder ein Token (aber hier tatsächlich eine Zeichenkette). Wenn man längere Zeichenketten als Delimiter benutzen möchte muß man schon eine etwas aufwendigere Routine mit strcspn() oder strspn() selber zusammenschustern um sich die einzel-Strings rauszuziehen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.