Contents

(Top)
String library
Homepage
Changelog
Credits
License
API
  6.1  String expression evaluator
  6.2  String fuzzy completion
  6.3  String regular expression
  6.4  String hashing
  6.5  String interning dictionary (quarks)
  6.6  String matching
  6.7  String normalization
  6.8  String conversion utils
  6.9  String options parsing
  6.10  String format (temporary buffers)
  6.11  String format (heap buffers)
  6.12  String splitting
  6.13  String trimming
  6.14  String transforms
  6.15  String unicode utils

   

String library

C string utils library (STB style, header-only). Features:

   

Homepage

   

Changelog

   

Credits

   

License

   

API

   

String expression evaluator

ABI      double        streval(const char *expression);
   

String fuzzy completion

ABI      int           strscore(const char *string1, const char *string2);
ABI      const char *  strfuzzy(const char *string, int num, const char *words[]);
   

String regular expression

ABI      int           strregex(const char *string, const char *regex);
ABI      bool          strmatch(const char *string, const char *substring);
   

String hashing

ABI      uint64_t      strhash(const char *string);
ABI      uint64_t      STRHASH(const char *string);
   

String interning dictionary (quarks)

ABI      int           strput(const char *string);
ABI      const char *  strget(int quark);
   

String matching

ABI      const char*   strsub  (const char *string, int position);
ABI      const char*   strfindl(const char *string, const char *substring);
ABI      const char*   strfindr(const char *string, const char *substring);
ABI      bool          strbegin(const char *string, const char *substring);
ABI      bool          strend  (const char *string, const char *substring);
ABI      bool          streq   (const char *string, const char *substring);
ABI      bool          streqi  (const char *string, const char *substring);
   

String normalization

ABI TEMP char *        strnorm (const char *uri);
   

String conversion utils

ABI      int64_t       strint  (const char *string);
ABI TEMP char*         strhuman(uint64_t number);
ABI      uint64_t      strrobot(const char *string);
   

String options parsing

ABI      const char *  stropt (const char *defaults, const char *options_csv);
ABI      int64_t       stropti(int64_t defaults, const char *options_csv);
ABI      double        stroptf(double defaults, const char *options_csv);
   

String format (temporary buffers)

ABI TEMP char *        strf (const char *format, ...);
ABI TEMP char *        strfv(const char *format, va_list list);
   

String format (heap buffers)

ABI HEAP char *        strcpyf (INOUT char **string, const char *format, ...);
ABI HEAP char *        strcpyfv(INOUT char **string, const char *format, va_list list);
ABI HEAP char *        strcatf (INOUT char **string, const char *format, ...);
ABI HEAP char *        strcatfv(INOUT char **string, const char *format, va_list list);
   

String splitting

ABI      int           strchop (const char *string, const char *delimiters, int avail, const char *tokens[]);
ABI HEAP char**        strsplit(const char *string, const char *delimiters);
ABI HEAP char*         strjoin (INOUT char **out, const char *tokens[], const char *separator);
   

String trimming

ABI      char*         strdel    (char *string, const char *substring);
ABI      char*         strtrimbff(char *string, const char *substring);
ABI      char*         strtrimblf(char *string, const char *substring);
ABI      char*         strtrimffe(char *string, const char *substring);
ABI      char*         strtrimlfe(char *string, const char *substring);
ABI      char*         strtrimws (char *string);
   

String transforms

ABI HEAP char*         strrepl   (INOUT char **string, const char *target, const char *replace);
ABI      char*         strremap  (INOUT char *string, const char srcs[], const char dsts[]);
ABI      char*         strlower  (char *string);
ABI      char*         strupper  (char *string);
ABI      char*         strrev    (char *string);
   

String unicode utils

ABI      uint32_t      strutf32(INOUT const char **utf8);
ABI TEMP char *        strutf8(uint32_t codepoint);
ABI TEMP wchar_t*      strwiden(const char *utf8);
ABI TEMP char*         strshorten(const wchar_t *utf16);

formatted by Markdeep 1.18