char *mystrtok(char **m,char *s,char c) { char *p=s?s:*m; if( !*p ) return 0; *m=strchr(p,c); if( *m ) *(*m)++=0; else *m=p+strlen(p); return p; }
- returnable
- flow
- strictly conforms to ANSI
- an unused reference pointer is required from the call context
eg.
char *p,*t,s[]="2342|2sd45|dswer|2342||5523|||3654|Pswt"; for(t=mystrtok(&p,s,'|');t;t=mystrtok(&p,0,'|')) puts(t);
eg.
char *p,*t,s[]="2,3,4,2|2s,d4,5|dswer|23,42||5523|||3654|Pswt"; for(t=mystrtok(&p,s,'|');t;t=mystrtok(&p,0,'|')) { char *p1,*t1; for(t1=mystrtok(&p1,t,',');t1;t1=mystrtok(&p1,0,',')) puts(t1); }
your work :) implement char * c as parameter 3
source share