@c99tut,
Why not just write your own strtok that returns the token-ending delimiter?
Code:
#include <stdio.h>
#include <string.h>
char *
my_strtok(
char * str,
const char * delims,
char * del)
{
static char * start = NULL, * end = NULL;
if (str)
start = end = str;
else if (end == NULL)
return NULL;
else
start = end + 1;
start += strspn(start, delims);
end = strpbrk(start, delims);
if (end) {
*del = *end;
*end = '\0';
}else
*del = '\0';
return start;
}
int
main()
{
char str[] = "***NO&SIR**I&DON'T&&LIKE*IT!";
char *p, del;
p = my_strtok(str, "*&", &del);
while (p) {
printf("%s\t", p);
if (del)
printf("{%c}\n", del);
else
printf("{null}\n");
p = my_strtok(NULL, "*&", &del);
}
return 0;
}
Output:
Code:
NO {&}
SIR {*}
I {&}
DON'T {&}
LIKE {*}
IT! {null}