## str

str

## Functions

#define | streq()
#define | strstarts()
bool | strends ()
#define | stringify()
#define | stringify_1()
size_t | strcount ()
#define | STR_MAX_CHARS()
#define | STR_MAX_CHARS_TCHECK_()
bool | cisalnum ()
bool | cisalpha ()
bool | cisascii ()
bool | cisblank ()
bool | ciscntrl ()
bool | cisdigit ()
bool | cisgraph ()
bool | cislower ()
bool | cisprint ()
bool | cispunct ()
bool | cisspace ()
bool | cisupper ()
bool | cisxdigit ()
#define | str_check_arg_()
#define | isalnum()
#define | isalpha()
#define | isascii()
#define | isblank()
#define | iscntrl()
#define | isdigit()
#define | isgraph()
#define | islower()
#define | isprint()
#define | ispunct()
#define | isspace()
#define | isupper()
#define | isxdigit()
#define | strstr()
#define | strchr()
#define | strrchr()

## Description

## Functions

### streq()

    #define streq(a,b) (strcmp((a),(b)) == 0)

### strstarts()

    #define strstarts(str,prefix) (strncmp((str),(prefix),strlen(prefix)) == 0)

### strends ()

    bool
    strends (const char *str,
             const char *postfix);

### stringify()

    #define stringify(expr)		stringify_1(expr)

### stringify_1()

    #define stringify_1(expr) #expr

### strcount ()

    size_t
    strcount (const char *haystack,
              const char *needle);

### STR_MAX_CHARS()

    #define             STR_MAX_CHARS(type_or_expr)

### STR_MAX_CHARS_TCHECK_()

    #define             STR_MAX_CHARS_TCHECK_(type_or_expr)

### cisalnum ()

    bool
    cisalnum (char c);

### cisalpha ()

    bool
    cisalpha (char c);

### cisascii ()

    bool
    cisascii (char c);

### cisblank ()

    bool
    cisblank (char c);

### ciscntrl ()

    bool
    ciscntrl (char c);

### cisdigit ()

    bool
    cisdigit (char c);

### cisgraph ()

    bool
    cisgraph (char c);

### cislower ()

    bool
    cislower (char c);

### cisprint ()

    bool
    cisprint (char c);

### cispunct ()

    bool
    cispunct (char c);

### cisspace ()

    bool
    cisspace (char c);

### cisupper ()

    bool
    cisupper (char c);

### cisxdigit ()

    bool
    cisxdigit (char c);

### str_check_arg_()

    #define             str_check_arg_(i)

### isalnum()

    #define isalnum(i) str_isalnum(str_check_arg_(i))

### isalpha()

    #define isalpha(i) str_isalpha(str_check_arg_(i))

### isascii()

    #define isascii(i) str_isascii(str_check_arg_(i))

### isblank()

    #define isblank(i) str_isblank(str_check_arg_(i))

### iscntrl()

    #define iscntrl(i) str_iscntrl(str_check_arg_(i))

### isdigit()

    #define isdigit(i) str_isdigit(str_check_arg_(i))

### isgraph()

    #define isgraph(i) str_isgraph(str_check_arg_(i))

### islower()

    #define islower(i) str_islower(str_check_arg_(i))

### isprint()

    #define isprint(i) str_isprint(str_check_arg_(i))

### ispunct()

    #define ispunct(i) str_ispunct(str_check_arg_(i))

### isspace()

    #define isspace(i) str_isspace(str_check_arg_(i))

### isupper()

    #define isupper(i) str_isupper(str_check_arg_(i))

### isxdigit()

    #define isxdigit(i) str_isxdigit(str_check_arg_(i))

### strstr()

    #define             strstr(haystack, needle)

### strchr()

    #define             strchr(haystack, c)

### strrchr()

    #define             strrchr(haystack, c)