#include "my_strtok_r.h" #include static int is_delim(char c, const char *delims) { for (const char *d = delims; *d; d++) { if (*d == c) return 1; } return 0; } char *my_strtok_r(char *str, const char *delim, char **saveptr) { if (str == NULL) { if (*saveptr == NULL) { return NULL; } str = *saveptr; } size_t i = 0; while (str[i] != '\0' && is_delim(str[i], delim)) { i++; } if (str[i] == '\0') { *saveptr = NULL; return NULL; } char *res = str + i; while (str[i] != '\0' && !is_delim(str[i], delim)) { i++; } if (str[i] == '\0') { *saveptr = NULL; return res; } *saveptr = str + i + 1; str[i] = '\0'; return res; }