I have made a mistake - Subsequent call to strtok should be made with first 
argument=NULL , not delim=NULL .

So , the calls should be 

strtok(Null,"'"), subsequently until there are no delimiters left.

It will return NULL when there are no more tokens.

Regards,
Saswat


On Thu, 2007-02-15 at 12:22 +0530, Saswat Praharaj wrote:
> If you are using a POSIX compliant system strtok() is the function to use for 
> the kind of
> operation you have mentioned.
> 
> 
> char *strtok(char *s, const char *delim);
> 
> It will create the tokens for you . You have to call it in a loop to get all 
> the tokens.
> After the first token is created you need to call strtok with argument delim= 
> NULL .
> 
> In your example :
> 
> For the first time you have to call 
> 
> strtok(mywords,"'") 
> 
> and then 
> 
> strtok(mywords,NULL), subsequently until there are no delimiters left.
> 
> 
> Do a "man strtok" or a web search to see the documentation.
> 
> 
> Regards,
> -Saswat
> 
> 
> 
> 
> 
>       
> 
> 
> On Thu, 2007-02-15 at 04:55 +0000, Hermann wrote: 
> 
> > My Code below won't work,
> > I would like to split strings delimited by commas and put them into
> > arrays;
> > Anyone can fix my code?
> > Thank you.
> > 
> > #include <stdio.h>
> > #include <string.h>
> > 
> > int main()
> > {
> > char *mywords;
> > unsigned int i,a;
> > char *myarray;
> > 
> > myarray = "\0";
> > mywords = "Hallo,Hi,Hai,Hey";
> > 
> > for(a=0;a<=3;a++){
> > for(i=0;i<=strlen(mywords)-1;i++){
> > if(mywords[i]!=','){
> > myarray[a] = strcat(myarray[a],mywords[i]); 
> > }
> > }
> > }
> > printf("%s\n",myarray[0]);
> > printf("%s\n",myarray[1]);
> > printf("%s\n",myarray[2]);
> > printf("%s\n",myarray[3]);
> > }
> > 
> > 
> > 
> > 
> 
> 
> 
> 
>  

Reply via email to