SYNTAX

       #include "str.h"

       unsigned int str_copy(char *dst, char *src);
       unsigned int str_copyb(char *dst, char *src, unsigned int len);
       unsigned int str_chr(char *s, int c);
       unsigned int str_rchr(char *s, int c);
       unsigned int str_diff(char *s, char *t);
       unsigned int str_diffn(char *s, char *t, unsigned int len);
       unsigned int str_equal(char *s, char *t);
       unsigned int str_len(const char *s);
       unsigned int str_starts(char *dst, char *src);
       char *str_append(char *dst, char *s);


DESCRIPTION

       str_copy copies src into dst up to the first occurance of \0 while
       including it.  It returns the number of bytes written.  If dst is
       smaller than src, str_copy fills up dst to its allocated size and
       returns the number of bytes it would have be written.  str_copyb copies
       len bytes from src into dst.

       str_chr and str_rchr searches for a single character in a string (from
       left-to-right or from right-to-left) and returns the position of the
       first occurrance of c or the length len of s.

       str_len determines the length of a string. It returns the position of
       the first occurance of \0 in s.

       str_diff, str_diffn, and str_equal compare two strings.  str_diff and
       str_diffn returns negative, zero or positive, depending whether the
       string s[0], s[1], ..., s[n]=='\0' is ASCII lexicographically smaller
       than, equal to, or greater than the string t[0], t[1], ...,
       t[m-1]=='\0'. If the strings are different, both functions do not read
       bytes past the first difference.  str_diffn considers the strings equal
       if the first n characters match.

       str_equal returns 1, if s and t match up to and including the first
       occurance of \0 or returns 0 otherwise. It is the opposite of str_diff.

       str_start compares the two strings from the begining.  It returns 1 if
       t is a prefix of s or 0 otherwise.

       *str_append appends a single byte s to out given out is allocated with
       enough space.


NOTE

       For the str_copy* and *str_append commands dst has to have a
       preallocated space.  Otherwise the result may be unexpected.


SEE ALSO

       byte(3), stralloc(3)


Man(1) output converted with man2html