How to split a C string by a string?
Murray Taylor
MTaylor at bytecraft.com.au
Thu Sep 18 07:20:44 UTC 2008
> -----Original Message-----
> From: owner-freebsd-questions at freebsd.org
[mailto:owner-freebsd-questions at freebsd.org] On Behalf Of Giorgos
Keramidas
> Sent: Thursday, 18 September 2008 1:49 AM
> To: unga888 at yahoo.com
> Cc: freebsd-questions at freebsd.org
> Subject: Re: How to split a C string by a string?
>
> On Wed, 17 Sep 2008 06:32:56 -0700 (PDT), Unga <unga888 at yahoo.com>
wrote:
> > --- On Wed, 9/17/08, Giorgos Keramidas <keramida at ceid.upatras.gr>
wrote:
> >> From: Giorgos Keramidas <keramida at ceid.upatras.gr>
> >> Subject: Re: How to split a C string by a string?
> >> To: unga888 at yahoo.com
> >> Cc: freebsd-questions at freebsd.org
> >> Date: Wednesday, September 17, 2008, 6:17 PM On Wed, 17 Sep 2008
> >> 00:45:46 -0700 (PDT), Unga <unga888 at yahoo.com> wrote:
> >> > Hi all
> >> >
> >> > I'm writing an C application on FreeBSD 7+. I need to split a
> >> > string by another string (ie. the delimiter is "xxx") similar to
> >> > strtok split a string by a single char. Is there a standard
> >> > function or is there a FreeBSD functions for this?
> >>
> >> You can use strstr() to look for the "xxx" delimited and split that
> >> that point: [snip sample code]>
>
> > Thank you very much for the reply. That is, there is no existing
split
> > function. So I got to write to my own :)
>
> Yes, you have to roll our own. The standard C library doesn't have
> string splitting functions with a string as delimiter. It includes
strtok(),
> strspn() and strcspn(), but these work with character sets as
delimiters, not strings...
Hi,
the attached code does string splitting and insertion
it looks for a specific string, copies from start up to that
point to a workspace, inserts the new text, then appends
the remainder, starting AFTER the search string fragment.
with a bit of work you could make it do your string splitting....
Murray Taylor
Bytecraft Systems
Special Projects Engineer
P: +61 3 8710 0600
D: +61 3 9238 4275
F: +61 3 9238 4140
--
|_|0|_| "Absence of evidence
|_|_|0| is not evidence of absence"
|0|0|0| Carl Sagan
---------------------------------------------------------------
The information transmitted in this e-mail is for the exclusive
use of the intended addressee and may contain confidential
and/or privileged material. Any review, re-transmission,
dissemination or other use of it, or the taking of any action
in reliance upon this information by persons and/or entities
other than the intended recipient is prohibited. If you
received this in error, please inform the sender and/or
addressee immediately and delete the material.
E-mails may not be secure, may contain computer viruses and
may be corrupted in transmission. Please carefully check this
e-mail (and any attachment) accordingly. No warranties are
given and no liability is accepted for any loss or damage
caused by such matters.
---------------------------------------------------------------
### This e-mail message has been scanned for Viruses by Bytecraft ###
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.c
Type: application/octet-stream
Size: 2418 bytes
Desc: test.c
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20080918/33a885f4/test.obj
More information about the freebsd-questions
mailing list