int func (char *params, ...) { int len; char *token; ... len= strpbrk(params, " :,") - params; if (len < 0) { len = strlen(params); last = 1; } token= (char *)malloc(len+1); strncpy(token, params, len); ...