The "st" Package
These routines are meant to supplement the standard C library str* routines
Since each version of Unix has a different set of "extra" string functions,
this package is meant to bridge the gap, and provides some of the more
useful "extras".
Library: karma
Link With: -lkarma
Functions
st_expr_expand | Expand an expression using Borne Shell-like unquoted rules.
|
st_find | Search a list of strings for a string.
|
st_chr | Search a string for the first occurrence of a character.
|
st_cmp_wild | Compare strings with wildcard support.
|
st_cspn | Find maximum leading segment in string with exclusion.
|
st_icmp | Compare strings, ignoring case.
|
st_lwr | Convert a string to lowercase.
|
st_nicmp | Compare strings, ignoring case, up to a specified length.
|
st_nupr | Convert a string to uppercase, up to a specified length.
|
st_nlwr | Convert a string to lowercase, up to a specified length.
|
st_pbrk | Search a string for a character from a set.
|
st_rchr | Search a string for the last occurrence of a character.
|
st_spn | Find maximum leading segment in string with inclusion.
|
st_tok | Extract token from string.
|
st_tol | Convert a string to a long integer.
|
st_upr | Convert a string to uppercase.
|
st_dup | Make a duplicate copy of a string.
|
st_qsort | Perform a quicksort on an array of strings.
|
Functions
EXPERIMENTAL FUNCTION: subject to change without notice
flag
st_expr_expand (char *output, unsigned int length, CONST char *input,
CONST char *(*get_variable) (CONST char *variable,
void *info),
void *info, FILE *errfp)
Expand an expression using Borne Shell-like unquoted rules.
Parameters:
- output :
The output expanded expression is written here.
- length :
The size of the output buffer.
- input :
The input expression. This may equal output.
- get_variable :
A function which will be used to get variable values. If
this returns NULL, the environment is searched instead. If this is NULL,
only the environment is searched.
- info :
An arbitrary pointer passed to get_variable.
- errfp :
Diagnostic messages are written here. If this is NULL the global
stderr is used instead.
Returns: TRUE on success, else FALSE.
Multithreading Level: Unsafe
unsigned int
st_find ( CONST char **string_list, unsigned int list_length,
CONST char *string, int (*function) () )
Search a list of strings for a string.
Parameters:
- string_list :
The list of strings to search.
- list_length :
The length of the string list.
- string :
The string to search for.
- function :
The function to use for string comparisons. This has the same
interface as the strcmp function.
Returns: The index of the found string in the string list. If no match is
found, the list_length is returned. The routine returns on the first
match.
Multithreading Level: Unsafe
CONST char *
st_chr (CONST char *string, char c)
Search a string for the first occurrence of a character.
Parameters:
- string :
The string to search.
- c :
The character to search for.
Returns: A pointer to the found character in the string. If no match is
found, NULL is returned.
Multithreading Level: Unsafe
int
st_cmp_wild (CONST char *a, CONST char *b)
Compare strings with wildcard support.
Parameters:
- a :
One of the strings. Wildcards are permitted.
- b :
The other string. Wildcards are not permitted.
Returns: The difference between the strings.
Multithreading Level: Unsafe
int
st_cspn (CONST char *string, CONST char *charset)
Find maximum leading segment in string with exclusion.
Parameters:
- string :
The string.
- charset :
The set of exclusion characters.
Returns: The number of characters in the leading segment.
Multithreading Level: Unsafe
int
st_icmp (CONST char *string1, CONST char *string2)
Compare strings, ignoring case.
Parameters:
- string1 :
One of the strings.
- string2 :
The other string.
Returns: The comparison value. 0 indicates equality.
Multithreading Level: Unsafe
char *
st_lwr (char *string)
Convert a string to lowercase.
Parameters:
Returns: The address of the string.
Multithreading Level: Unsafe
int
st_nicmp (CONST char *string1, CONST char *string2, int str_len)
Compare strings, ignoring case, up to a specified length.
Parameters:
- string1 :
One of the strings.
- string2 :
The other string.
- str_len :
The maximum number of characters to compare.
Returns: The comparison value. 0 indicates equality.
Multithreading Level: Unsafe
char *
st_nupr (char *string, int str_len)
Convert a string to uppercase, up to a specified length.
Parameters:
- string :
The string.
- str_len :
The maximum number of characters to convert.
Returns: The address of the string.
Multithreading Level: Unsafe
char *
st_nlwr (char *string, int str_len)
Convert a string to lowercase, up to a specified length.
Parameters:
- string :
The string.
- str_len :
The maximum number of characters to convert.
Returns: The address of the string.
Multithreading Level: Unsafe
char *
st_pbrk (CONST char *string, CONST char *brkset)
Search a string for a character from a set.
Parameters:
- string :
The string to search.
- brkset :
The set of characters to search for.
Returns: A pointer to the found character in the string. If no match is
found, NULL is returned.
Multithreading Level: Unsafe
CONST char *
st_rchr (CONST char *string, char c)
Search a string for the last occurrence of a character.
Parameters:
- string :
The string to search.
- c :
The character to search for.
Returns: A pointer to the found character in the string. If no match is
found, NULL is returned.
Multithreading Level: Unsafe
int
st_spn (CONST char *string, CONST char *charset)
Find maximum leading segment in string with inclusion.
Parameters:
- string :
The string.
- charset :
The set of inclusion characters.
Returns: The number of characters in the leading segment.
Multithreading Level: Unsafe
char *
st_tok (char *string, CONST char *sepset)
This routine will break a string into a series of tokens. This
routine should be called until no more tokens are found.
Parameters:
- string :
The string. On subsequent calls (for a series of tokens), NULL
should be passed.
- sepset :
The set of delimiters (separators between tokens).
Returns: A pointer to the next token. NULL is returned if no tokens are
found.
Multithreading Level: Unsafe
long
st_tol (CONST char *str, char **ptr, int base)
Convert a string to a long integer.
Parameters:
- str :
The string.
- ptr :
A pointer to the first invalid character is written here. If this is
NULL, nothing is written here.
- base :
The base of the number system.
Returns: The integer value.
Multithreading Level: Unsafe
char *
st_upr (char *string)
Convert a string to uppercase.
Parameters:
Returns: The address of the string.
Multithreading Level: Unsafe
char *
st_dup (CONST char *input)
Make a duplicate copy of a string.
Parameters:
- string :
The input string.
Returns: A pointer to a copy of the string (allocated using m_alloc)
on success, else NULL.
Multithreading Level: Unsafe
void
st_qsort (char **v, int left, int right)
Perform a quicksort on an array of strings.
Parameters:
- v :
The array of strings.
- left :
The left string index.
- right :
The right string index.
Returns: Nothing.
Multithreading Level: Unsafe
Back to Karma Home Page
Contact: Richard Gooch
Web Development: Ariel Internet Services