Drakosha gave the correct answer. I want to add an example for both options.
With strtok:
char *token; char *tmp_string; char delimiter[10] = " |,.:"; strcpy (tmp_string, "1:2::4"); token = strtok(tmp_string, delimiter); // first token while(token != NULL) { i++; printf ("i=%d\tToken: len(%d)\t%s", i, strlen(token), token); // do something token = strtok(NULL, delimiter); /* next token */ }
Using strsep (recognizes ""):
char *token; char *tmp_string; char delimiter[10] = " |,."; strcpy (tmp_string, "1:2::4"); token = strsep(&tmp_string, delimiter); // first token while(token != NULL) { i++; printf ("i=%d\tToken: len(%d)\t%s", i, strlen(token), token); // do something token = strsep(&tmp_string, delimiter); /* next token */ }
source share