Zum Inhalt springen

Stringmanipulation strtok???


Woodstock

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...