Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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

Geschrieben

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...