strtok_r在引号内提取字符串

时间:2011-08-09 10:55:19

标签: c string strtok

我的字符串是:

He is a "funny" guy

如何使用strtok_r

提取该内容
strtok_r(str, "\"", &last_pointer);

这是一种正确的做法吗?以上陈述是否会先跳过"

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我的strtok_r文档说

  

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

     

在第一次调用strtok_r()时,str应指向要解析的字符串,并忽略saveptr的值。在后续调用中,str应为NULLsaveptr自上一次调用后应保持不变。

所以你应该先用

调用它
strtok_r(str, "\"", &last_pointer);

然后用

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