我的字符串是:
He is a "funny" guy
如何使用strtok_r
?
strtok_r(str, "\"", &last_pointer);
这是一种正确的做法吗?以上陈述是否会先跳过"
?
答案 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
应为NULL
,saveptr
自上一次调用后应保持不变。
所以你应该先用
调用它strtok_r(str, "\"", &last_pointer);
然后用
strtok_r(NULL, "\"", &last_pointer);