Date: Mon, 18 Feb 2008 17:30:00 -0600 From: Tim Daneliuk <tundra@tundraware.com> To: Gary Kline <kline@thought.org> Cc: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: is there an easier way? Message-ID: <47BA14F8.4060109@tundraware.com> In-Reply-To: <47BA1375.2010108@tundraware.com> References: <20080218230351.GA28000@thought.org> <47BA1375.2010108@tundraware.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Tim Daneliuk wrote: > Gary Kline wrote: >> To my fellow C nerds, >> >> It's been a great manny years since I wrote this appended >> snippet. Now I can't remember why (of if ) I need all the >> strcpy() calls. Is there a simpler, more logical way of >> printing a bunch of string by snipping off the left-most? >> >> In short,, can anyone 'splain why strtok needs all this? >> >> tia, >> >> gary >> >> > > I don't think you need the copies. This works just as well: > > #include <stdio.h> > #include <string.h> > > main() > { > char *bp, *tok; > char *delim=" ", s1[256]="abc def ghi jkl mno."; > > bp = s1; /* Now both point to the literal string to be tokenized */ > > while ((tok = strtok(bp, delim)) != NULL) > { > bp = NULL; > printf("tok = [%s]\n", tok); > } > } > Ooops ... wasn't paying attention. While the printed output is the same, doing it this way is destructive to the original s1 string - which may matter (or not)... -- ---------------------------------------------------------------------------- Tim Daneliuk tundra@tundraware.com PGP Key: http://www.tundraware.com/PGP/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47BA14F8.4060109>