1

我的字符串是:

He is a "funny" guy

我怎样才能提取它使用strtok_r

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

这是正确的做法吗?上面的语句会先跳过"吗?

4

2 回答 2

1

此 POSIX 函数将跳过所有前导 '\"' 而不是第一次。第二次调用 strtok_r 并将 NULL 作为第一个参数并玩得开心。

于 2011-08-09T11:14:47.917 回答
1

我的文档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);
于 2011-08-09T11:18:58.163 回答