#include <stdio.h>
char *strstrtok(char *src, char *sep)
{
static char *str = NULL;
if (src) str = src;
else src = str;
if (str == NULL)
return NULL;
char *next
= strstr(str
, sep
); if (next)
{
*next = '\0';
}
else
str = NULL;
return src;
}
int main(void) {
char buf[] = "yoursepmamasepissepsosepfatsepsheseptooksepasepspoonseptosepthesepsuperbowl";
char *token = strstrtok(buf, "sep");
while (token)
{
token = strstrtok(NULL, "sep");
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjaGFyICpzdHJzdHJ0b2soY2hhciAqc3JjLCBjaGFyICpzZXApCnsKCXN0YXRpYyBjaGFyICpzdHIgPSBOVUxMOwoJaWYgKHNyYykgc3RyID0gc3JjOwoJZWxzZSBzcmMgPSBzdHI7CgoJaWYgKHN0ciA9PSBOVUxMKQoJCXJldHVybiBOVUxMOwoKCWNoYXIgKm5leHQgPSBzdHJzdHIoc3RyLCBzZXApOwoJaWYgKG5leHQpCgl7CgkJKm5leHQgPSAnXDAnOwoJCXN0ciA9IG5leHQgKyBzdHJsZW4oc2VwKTsKCX0KCWVsc2UKCQlzdHIgPSBOVUxMOwoKCXJldHVybiBzcmM7Cn0KCmludCBtYWluKHZvaWQpIHsKCWNoYXIgYnVmW10gPSAieW91cnNlcG1hbWFzZXBpc3NlcHNvc2VwZmF0c2Vwc2hlc2VwdG9va3NlcGFzZXBzcG9vbnNlcHRvc2VwdGhlc2Vwc3VwZXJib3dsIjsKCWNoYXIgKnRva2VuID0gc3Ryc3RydG9rKGJ1ZiwgInNlcCIpOwoJd2hpbGUgKHRva2VuKQoJewoJCXByaW50ZigiJXMgIiwgdG9rZW4pOwoJCXRva2VuID0gc3Ryc3RydG9rKE5VTEwsICJzZXAiKTsKCX0KCXJldHVybiAwOwp9Cg==