typedef struct { char *b, *e; } range; typedef struct { range a, b; } two_ranges; two_ranges find_cset(range s, range delims) { char *b = s.b; for (; s.b != s.e; s.b++) { for (char *t = delims.b; t != delims.e; t++) { if (*t == *s.b) return (two_ranges) { { b, s.b }, s }; } } return (two_ranges) { { b, s.b }, s }; }