Ahoj,
mám problém s funkcí strtok(). Používám dvě konstrukce, které mi podle mezer rozdělují vstupní text na jednotlivá "slova". Pro speciální případ slova, ve kterém je obsažen znak @ mám nastavenou podmínku, aby toto slovo uložilo do připraveného pole. No a teď k samotnému problému - pokud je na vstupu právě znak @, tak se mi u druhé konstrukce vypíše pouze první slovo (tím funkce strtok() končí). Ovšem pokud první konstrukci zakomentuji, tak začne fungovat ta druhá.
Zdrojový kód přikládám níže:
// První konstrukce
char *token_a;
token_a = strtok(input, " ");
char e_rules [strlen(input)];
while (token_a != NULL)
{
if (strchr(token_a, '@') != NULL)
{
if (e_rules[2] != '@')
{
strcpy(e_rules, token_a);
}
else
{
strcat(e_rules, token_a);
}
}
token_a = strtok(NULL, " ");
}
// Druhá konstrukce (funguje pouze pokud odstraním tu první, jinak vypíše jen první slovo ze vstupního textu)
while (token_b != NULL)
{
printf("TOKEN: %s\n", token_b);
token_b = strtok(NULL, " ");
}