is there an easier way?
Tim Daneliuk
tundra at tundraware.com
Mon Feb 18 23:30:09 UTC 2008
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 at tundraware.com
PGP Key: http://www.tundraware.com/PGP/
More information about the freebsd-questions
mailing list