strtok_r для извлечения строки внутри кавычек - PullRequest
1 голос
/ 09 августа 2011

моя строка:

He is a "funny" guy

Как мне извлечь это, используя strtok_r?

strtok_r(str, "\"", &last_pointer);

Это правильный способ сделать это?будет ли вышеупомянутое утверждение пропущено первым "?

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Моя документация для strtok_r гласит:

char *strtok_r(char *str, const char *delim, char **saveptr);

При первом вызове strtok_r(), str должен указывать на строку для анализа, изначение saveptr игнорируется.При последующих вызовах str должно быть NULL, а saveptr должно оставаться неизменным с момента предыдущего вызова.

Поэтому сначала следует позвонить с помощью

strtok_r(str, "\"", &last_pointer);

и затем с

strtok_r(NULL, "\"", &last_pointer);
1 голос
/ 09 августа 2011

эта функция POSIX пропустит все первые '\ "' не первые. Вызовите strtok_r второй раз с NULL в качестве первого параметра и получите удовольствие.

...