我的字符串是:
He is a "funny" guy
我怎样才能提取它使用strtok_r
?
strtok_r(str, "\"", &last_pointer);
这是正确的做法吗?上面的语句会先跳过"
吗?
此 POSIX 函数将跳过所有前导 '\"' 而不是第一次。第二次调用 strtok_r 并将 NULL 作为第一个参数并玩得开心。
我的文档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);