Guten Tag,
ich habe mir eben eine Funktion geschrieben, welche ein Token mit einem gewissen Index aus einem String zurückliefert. Sie klappt mit jedem Index, aber nur, wenn man sie nicht öfter aufruft. Im folgenden Codebeispiel wird im zweiten printf statt "ist" einfach NULL ausgegeben. Woran liegt das?
Mit freundlichen Grüßen und Danke im Voraus,
Afritus
ich habe mir eben eine Funktion geschrieben, welche ein Token mit einem gewissen Index aus einem String zurückliefert. Sie klappt mit jedem Index, aber nur, wenn man sie nicht öfter aufruft. Im folgenden Codebeispiel wird im zweiten printf statt "ist" einfach NULL ausgegeben. Woran liegt das?
Code:
#include <stdio.h>
#include <string.h>
char* strToken(char* str, char* divider, int index)
{
char* pointer = strtok(str, divider);
int counter = 0;
while(pointer != NULL)
{
if(counter == index)
{
return pointer;
}
pointer = strtok(NULL, divider);
counter++;
}
return NULL;
}
int main()
{
char str[] = "Das ist ein Test.";
printf("1: %s\n", strToken(str, " ", 0));
printf("2: %s\n", strToken(str, " ", 1));
return 0;
}
Mit freundlichen Grüßen und Danke im Voraus,
Afritus