#include <string.h>

char* strtok_r(char* restrict s, const char* restrict sep, char** restrict p) {
  if (!s && !(s = *p))
    return NULL;
  s += strspn(s, sep);
  if (!*s)
    return *p = 0;
  *p = s + strcspn(s, sep);
  if (**p)
    *(*p)++ = 0;
  else
    *p = 0;
  return s;
}
