|
Yep, and this is the code I use in the RPG ToolKit:
#include <string.h>
#include <stdio.h>
/*
* Get next token from string *stringp, where tokens are possibly-empty
* strings separated by characters from delim.
*
* Writes NULs into the string at *stringp to end tokens.
* delim need not remain constant from call to call.
* On return, *stringp points past the last NUL written (if there might
* be further tokens), or is NULL (if there are definitely no more tokens).
*
* If *stringp is NULL, strsep returns NULL.
*/
char* strsep(char** stringp, const char* delim)
{
char *s = NULL;
const char *spanp;
int c=0;
int sc=0;
char *tok=NULL;
if ((s = *stringp) == NULL) {
return (NULL);
}
for (tok = s;;) {
c = *s++;
spanp = delim;
do {
if ((sc = *spanp++) == c) {
if (c == 0) {
s = NULL;
} else {
s[-1] = 0;
}
*stringp = s;
return (tok);
}
} while (sc != 0);
}
}
Bob Cozzi
Cozzi Consulting
www.rpgiv.com
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Hans Boldt
Sent: Thursday, June 12, 2003 10:12 AM
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: strtok and consecutive delimiters
Bob cozzi wrote:
> "Slight modification" probably means he didn't know how to do it.
> (Jon's in Europe so I no he's not listening live, like he usually does,
<g>)
> The is another function called strsep() that does what you want. It too is
a
> C function. The C compiler/runtime does not come with that function on the
> 400. I ported it to the RPG ToolKit about 4 months ago and sent it to Jon
as
> well.
FWIW, as far as I can tell, the only differences between strtok()
and strsep() are that the former can't handle empty strings and the
latter is not ANSI.
Cheers! Hans
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.