Try
Code:#include <stdio.h> #include <string.h> int parse ( char *input, char *output[], int maxtokens ) { char *seps = "|\n"; int i; char *p; for ( i = 0, p = strtok(input,seps) ; i < maxtokens && p != NULL ; i++, p = strtok(NULL,seps) ) { output[i] = p; } return i; } int main ( ) { char input[] = "command|MAC|field|field|field\n"; char *output[10]; int len = parse ( input, output, 10 ); int i; for ( i = 0 ; i < len ; i++ ) { printf( "%s\n", output[i] ); } return 0; }