On Wed, 17 Sep 2008 00:45:46 -0700 (PDT), Unga <[EMAIL PROTECTED]> 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:

  % cat -n foo.c
       1  #include <stdio.h>
       2  #include <string.h>
       3
       4  int
       5  main(void)
       6  {
       7          char text[] = "Hello string world";
       8          char delim[] = " string ";
       9          size_t dlen = sizeof(delim) / sizeof(delim[0]) - 1;
      10          char *p;
      11
      12          p = strstr(text, delim);
      13          if (p == NULL)
      14                  return 0;               /* No match */
      15
      16          printf("First part =  \"%.*s\"\n", p - text, text);
      17          printf("Second part = \"%s\"\n", p + dlen);
      18          return 0;
      19  }
  % cc -std=iso9899:1990 -O2 -Wall foo.c
  % ./a.out
  First part =  "Hello"
  Second part = "world"
  %

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to