Cthulhu  0.2.10
Cthulhu compiler collection
str.h File Reference
#include <ctu_std_api.h>
#include "core/analyze.h"
#include "core/compiler.h"
#include "core/text.h"
#include <stdarg.h>
#include <stdbool.h>
#include <stddef.h>
Include dependency graph for str.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define STR_WHITESPACE   " \t\r\v\n\f"
 all whitespace charaters More...
 

Typedefs

typedef typedefCT_BEGIN_API struct arena_t arena_t
 

Functions

CT_STD_API size_t str_vsprintf (STA_WRITES(len) char *str, size_t len, const char *fmt, va_list args)
 format a string with printf-like syntax More...
 
CT_STD_API size_t str_sprintf (STA_WRITES(len) char *str, size_t len, STA_FORMAT_STRING const char *fmt,...)
 format a string with printf-like syntax More...
 
CT_NODISCARD STA_PRINTF (2, 3) CT_STD_API text_t text_format(arena_t *arena
 format a string More...
 
CT_NODISCARD STA_FORMAT_STRING const char CT_NODISCARD CT_STD_API text_t text_vformat (arena_t *arena, const char *fmt, va_list args)
 format a string More...
 
CT_NODISCARD STA_FORMAT_STRING const char CT_NODISCARD CT_STD_API char * str_vformat (arena_t *arena, const char *fmt, va_list args)
 format a string More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool str_startswith (const char *str, const char *prefix)
 see if a string starts with a prefix More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool str_endswith (const char *str, const char *suffix)
 check if a string ends with a substring More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool str_endswithn (STA_READS(len) const char *str, size_t len, const char *suffix)
 check if a string ends with a substring More...
 
CT_NODISCARD CT_STD_API char * str_join (const char *sep, const vector_t *parts, arena_t *arena)
 join strings More...
 
CT_NODISCARD CT_STD_API char * str_repeat (const char *str, size_t times, arena_t *arena)
 repeat a string More...
 
CT_NODISCARD CT_STD_API char * str_normalize (const char *str, arena_t *arena)
 turn a string into a C string literal More...
 
CT_NODISCARD CT_STD_API char * str_normalizen (text_view_t text, arena_t *arena)
 turn a string with length into a C string literal More...
 
CT_STD_API size_t str_normalize_into (STA_WRITES(len) char *dst, size_t dstlen, STA_READS(srclen) const char *src, size_t srclen)
 normalize a string into a buffer More...
 
CT_NODISCARD CT_STD_API vector_tstr_split (const char *str, const char *sep, arena_t *arena)
 split a string into a vector by a separator More...
 
CT_NODISCARD CT_STD_API const char * str_common_prefix (const vector_t *args, arena_t *arena)
 find the longest common prefix of a vector of paths More...
 
CT_PUREFN CT_STD_API size_t str_rfind (const char *str, const char *sub)
 find the last instance of a substring in a string More...
 
CT_PUREFN CT_STD_API size_t str_find (const char *str, const char *sub)
 find the first instance of a substring in a string More...
 
CT_PUREFN CT_STD_API size_t str_rfind_any (const char *str, const char *letters)
 find the first instance of a set of characters in a string More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool char_is_any_of (char c, const char *chars)
 check if a character is any of a set of characters More...
 
CT_NODISCARD CT_PUREFN CT_STD_API bool str_contains (const char *str, const char *search)
 check if a string contains a substring More...
 
CT_NODISCARD CT_STD_API char * str_replace (const char *str, const char *search, const char *repl, arena_t *arena)
 replace all instances of a substring in a string More...
 
CT_STD_API void str_replace_inplace (INOUT_NOTNULL text_t *text, const char *search, const char *repl)
 replace all instances of a substring in a string in place More...
 
CT_STD_API void str_trim_back_inplace (INOUT_NOTNULL text_t *text, const char *chars)
 trim chars from the back of a string in place More...
 
CT_STD_API void str_sort_inplace (STA_UPDATES(len) char *str, size_t len)
 sort a strings contents in place More...
 
CT_NODISCARD CT_STD_API char * str_replace_many (const char *str, const map_t *repl, arena_t *arena)
 replace all instances of a each substring in a string with provided replacement More...
 
CT_NODISCARD CT_NOALIAS CT_STD_API char * str_erase (STA_READS(len) char *str, size_t len, const char *letters)
 remove all instances of letters from str More...
 
CT_NODISCARD CT_STD_API char * str_basename (const char *path, arena_t *arena)
 get the filename from a path More...
 
CT_NODISCARD CT_STD_API char * str_filename (const char *path, arena_t *arena)
 get the filename from a path More...
 
CT_NODISCARD CT_STD_API char * str_noext (const char *path, arena_t *arena)
 remove the last file extension from a path More...
 
CT_NODISCARD CT_STD_API char * str_ext (const char *path, arena_t *arena)
 get the last file extension from a path More...
 
CT_NODISCARD CT_STD_API char * str_directory (const char *path, arena_t *arena)
 get the directory segment of a path More...
 
CT_NODISCARD CT_STD_API char * str_upper (const char *str, arena_t *arena)
 uppercase an ascii string More...
 
CT_NODISCARD CT_STD_API char * str_lower (const char *str, arena_t *arena)
 lowercase an ascii string this allocates a new string in the provided arena More...
 
CT_NODISCARD CT_CONSTFN CT_STD_API char str_tolower (char c)
 get the lowercase version of a character More...
 
CT_NODISCARD CT_CONSTFN CT_STD_API char str_toupper (char c)
 get the uppercase version of a character More...
 
CT_NODISCARD CT_STD_API bool text_view_equal (text_view_t lhs, text_view_t rhs)
 check if two strings are equal More...
 

Variables

CT_NODISCARD STA_FORMAT_STRING const char * fmt
 

Typedef Documentation

◆ arena_t

typedef typedefCT_BEGIN_API struct arena_t arena_t

Definition at line 15 of file str.h.