str_split_by_char_set_c

	sub_strings.i1p.r = str_split_by_char_set_c(source_string.i1a.r,
						    source_length.i4.v,
						    delimiters.i1a.r,
						    options.u8.v,
						    num_substrings.i4.r
						    [,actual_delims.i1p.r]
						    [,max_splits.i4.v])

	This routine returns the array of substrings making up a larger
	string.  The delimiters between adjacent substrings is determined
	by a passed string.  This routine allocates the memory for the
	array of substrings.  This memory is freed on the next call to this
	routine in which a string is successfully split unless the option
	STR_OPT_NO_STATIC_MEMORY is selected.  In spite of this,
	you can still use a substring extracted by this call as the input
	string to the next call to this routine.

	source_string	string to be split
	source_length	length of string to be split  (If this argument
			has a value of zero, the routine will determine
			the length of the string.)
	delimiters	null terminated list of delimiter characters
	options		use options
			(STR_OPT_NONE -> no options selected,
			 STR_OPT_NO_TRIM -> don't trim spaces from substrings,
			 STR_OPT_HANDLE_QUOTES -> handle substrings which
						  are quoted strings,
			 STR_OPT_HANDLE_EMBEDDED_QUOTES -> handle substrings
							   which have quoted
							   strings embedded
							   in them,
			 STR_OPT_PRESERVE_QUOTES -> preserve the quote
						    characters in quoted
						    strings,
			 STR_OPT_HANDLE_BRACES -> handle substrings which
						  are bracketed strings,
			 STR_OPT_HANDLE_EMBEDDED_BRACES -> handle substrings
							   which have bracketed
							   strings embedded
							   in them,
			 STR_OPT_HANDLE_PARENTHESES -> handle substrings which
						       are parenthetical
						       strings,
			 STR_OPT_HANDLE_EMBEDDED_PARENTHESES -> handle substrings
								which have
								parenthetical
								strings embedded
								in them,
			 STR_OPT_NO_STATIC_MEMORY -> don't utilize static memory
						     (caller must free string
						      memory preferably with
						      str_free_array_of_strings_c),
			 STR_OPT_RETURN_UNSPLIT_STRINGS -> return strings that
							   couldn't be split
							   (default is to return
							    a 0 for the number
							    of strings and an
							    overall value of
							    NULL))

	num_substrings	returned number of substrings found
			(A value of NULL can be passed for this argument
			 if this information is not needed.)
	[actual_delims]	returned actual delimiters found
			(The memory for this argument is allocated by
			 this routine and should be freed by the caller.)
			(default is NULL)
	[max_splits]	maximum number of split characters to look for
			(default is 0 which results in searching for all splits)

	This function returns values as follows:

	NULL			delimiter string not found
	otherwise		array of pointers to substrings

	This function requires the following include files:

	cbslib_h, acnet_errors_h

	Related functions:

	str_split_by_char_set_nonstatic_c, str_split_c, str_find_string_c,
	str_find_last_string_c, strstr, strstr_nocase, str_compare_n_nocase_c,
	str_compare_nocase, strncmp, strcmp, strncmx, str_concatenate_c,
	str_free_array_of_strings_c

	C/C++ usage:

	static const char	source_string[] = "string1\\string2";
	static const char	delimiters[] = "\\";
	char	*actual_delims;
	char	**sub_strings;
	int	source_length = 0;
	int	num_substrings;
	int	max_splits = 0;
	unsigned long long	options = STR_OPT_NONE;

	sub_strings = str_split_by_char_set_c(source_string,source_length,
					      delimiters,options,
					      &num_substrings,&actual_delims,
					      max_splits);
			.
			.
			.
	free(actual_delims);