dwww Home | Manual pages | Find package

ao_string_tokenize(3)         Programmer's Manual        ao_string_tokenize(3)

NAME
       ao_string_tokenize - tokenize an input string

SYNOPSIS
       #include <your-opts.h>
       cc [...] -o outfile infile.c -lopts [...]

       token_list_t * ao_string_tokenize(char const * string);

DESCRIPTION
       This  function  will  convert  one input string into a list of strings.
       The list of strings is derived by separating the input based  on  white
       space separation.  However, if the input contains either single or dou-
       ble quote characters, then the text after that character up to a match-
       ing quote will become the string in the list.

       The  returned pointer should be deallocated with free(3C) when are done
       using the data.  The data are placed in a  single  block  of  allocated
       memory.  Do not deallocate individual token/strings.

       The structure pointed to will contain at least these two fields:

       tkn_ct The number of tokens found in the input string.

       tok_list  An array of tkn_ct + 1 pointers to substring tokens, with the
       last pointer set to NULL.

       There are two types of quoted strings: single  quoted  (')  and  double
       quoted  (").  Singly quoted strings are fairly raw in that escape char-
       acters (\) are simply another character, except when preceding the fol-
       lowing characters:
           \  double backslashes reduce to one
           '   incorporates the single quote into the string
           0fP  suppresses both the backslash and newline character

       Double  quote  strings are formed according to the rules of string con-
       stants in ANSI-C programs.

       string string to be tokenized

RETURN VALUE
       pointer to a structure that lists each token

ERRORS
       NULL is returned and errno will be set to indicate the problem:

       EINVAL - There was an unterminated quoted string.

       ENOENT - The input string was empty.

       ENOMEM - There is not enough memory.  @end itemize

EXAMPLES
                #include <stdlib.h>
                int ix;
                token_list_t * ptl = ao_string_tokenize(some_string)
                for (ix = 0; ix < ptl->tkn_ct; ix++)
                do_something_with_tkn(ptl->tkn_list[ix]);
                free(ptl);
            Note that everything is freed with the one call to free(3C).

SEE ALSO
       The info documentation for the -lopts library.
       configFileLoad(3), optionFileLoad(3),  optionFindNextValue(3),  option-
       FindValue(3),  optionFree(3), optionGetValue(3), optionLoadLine(3), op-
       tionMemberList(3), optionNextValue(3), optionOnlyUsage(3), optionPrint-
       Version(3), optionPrintVersionAndReturn(3), optionProcess(3), optionRe-
       store(3), optionSaveFile(3), optionSaveState(3), optionUnloadNested(3),
       optionVersion(3),     strequate(3),     streqvcmp(3),     streqvmap(3),
       strneqvcmp(3), strtransform(3),

                                  2022-05-24             ao_string_tokenize(3)

Generated by dwww version 1.15 on Sat Jun 29 11:14:51 CEST 2024.