while(pr != NULL)
{
printf("%s ! %s\n", leksema, pr);
pr = strtok_s(NULL, razd, &token2);
}
Проблемы с strtok/strtok_s
пробоввал загонять в цикл for, как я понял после одной итерации внутреннего цикла сохраняется только bee (
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main(void){
char str[] = "Get bee geter beever";
char predl[] = "bee get";
char razd[] = ",.! :";
char *leksema, *token;
char *pr, *token2;
leksema = strtok_s(str, razd, &token);
while(leksema != NULL)
{
pr = strtok_s(predl, razd, &token2);
Код:
leksema = strtok_s(NULL, razd, &token);
}
_getch();
return 0;
}
Each call (of strtok_s) modifies strToken by substituting a NULL character for each delimiter that is encountered.
[/QUOTE]
Следовательно, ситуация следующая. Первый проход внутреннего цикла осуществляется правильно. Однако после него переменная predl вместо значения "bee get" принимает значение "bee\0get", откуда видно, что слово "get" становится недоступным для последующего парсинга.