Browse Source

add an example

OPENBSD_2_6
aaron 25 years ago
parent
commit
f4692eac7a
1 changed files with 38 additions and 3 deletions
  1. +38
    -3
      src/lib/libc/string/strtok.3

+ 38
- 3
src/lib/libc/string/strtok.3 View File

@ -33,7 +33,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $OpenBSD: strtok.3,v 1.6 1999/06/29 18:01:34 aaron Exp $
.\" $OpenBSD: strtok.3,v 1.7 1999/07/03 15:58:50 aaron Exp $
.\"
.Dd June 29, 1991
.Dt STRTOK 3
@ -73,10 +73,44 @@ The
.Fn strtok
function
returns a pointer to the beginning of each subsequent token in the string,
after replacing the separator character itself with a
.Dv NUL
after replacing the separator character itself with an
.Tn ASCII NUL
character.
When no more tokens remain, a null pointer is returned.
.Pp
Since
.Fn strtok
modifies the string,
.Fa str
should not point to an area in the initialized data segment.
.Pp
.Sh EXAMPLES
The following will construct an array of pointers to each individual word in
the string
.Va s :
.Bd -literal -offset indent
#define MAXTOKENS 128
char s[512], *p, *tokens[MAXTOKENS];
int i = 0;
snprintf(s, sizeof(s), "cat dog horse cow");
for ((p = strtok(s, " ")); p; (p = strtok(NULL, " ")), i++) {
if (i < MAXTOKENS)
tokens[i] = p;
}
tokens[i] = '\e0';
.Ed
.Pp
That is, tokens[0] will point to
.Qq cat ,
tokens[1] will point to
.Qq dog ,
tokens[2] will point to
.Qq horse ,
and tokens[3] will point to
.Qq cow .
.Sh SEE ALSO
.Xr index 3 ,
.Xr memchr 3 ,
@ -107,3 +141,4 @@ may return a non-null value.
Since this implementation always alters the next starting point,
such a sequence of calls would always return
.Dv NULL .

Loading…
Cancel
Save