An open API service indexing awesome lists of open source software.

https://github.com/hiperiondev/stringslib

Memory safe library for manage strings
https://github.com/hiperiondev/stringslib

library string

Last synced: about 5 hours ago
JSON representation

Memory safe library for manage strings

Awesome Lists containing this project

README

          

# stringslib
## Memory safe library for manage strings

### NOTE
For convenience, for all functions that return a String, a macro (func_m) is defined that moves the return over the input string. See strings.h

-------------------------------

# Strings Core Functions

## Functions

| | Name |
| -------------- | ---------------------------------------------------------------------------- |
| String | **string_new**(const size_t cap)
Allocate a new Buffer of capacity `cap`. |
| String | **string_new_c**(const char *str)
Allocate a new Buffer and copy string. |
| String | **string_dup**(const String buf)
Duplicate string. |
| bool | **string_resize**(String *pbuf, const size_t newcap)
Resize capacity. |
| const char* | **string_data**(const String buf)
Return Data of Buffered string. |
| void | **string_reset**(String buf)
Reset Buffered string content. |

-------------------------------

# Strings Manipulation Functions

## Functions

| | Name |
| -------------- | ------------------------------------------------------------------------------------------------------------------------ |
| String | **string_left**(const String buf, uint32_t pos)
Substring left from position. |
| String | **string_right**(const String buf, uint32_t pos)
Substring right from position. |
| String | **string_mid**(const String buf, uint32_t left, uint32_t right)
Substring left from position left to position right. |
| String | **string_concat**(const String str1, const String str2)
Concatenation of strings. |
| String | **string_insert**(const String buf, const String str, uint32_t pos)
Insert string on position. |
| String | **string_delete**(const String buf, uint32_t pos1, uint32_t pos2)
Delete substring from pos1 to pos2. |
| String | **string_delete_prefix**(const String buf, const String pfx)
Delete prefix |
| String | **string_delete_prefix_c**(const String buf, const char *pfx)
Delete prefix from string |
| String | **string_delete_postfix**(const String buf, const String pfx)
Delete postfix |
| String | **string_delete_postfix_c**(const String buf, const char *pfx)
Delete postfix from string |
| String | **string_replace**(const String buf, const String search, String replace, uint32_t pos)
Replace string. |
| uint32_t | **string_find**(const String buf, const String search, uint32_t pos)
Find substring starting at position. |
| uint32_t | **string_find_c**(const String buf, char c, uint32_t pos)
Find character starting at position. |
| String | **string_toupper**(const String buf)
To upper string. |
| String | **string_tolower**(const String buf)
To lower string. |
| String | **string_ltrim**(const String buf)
Left trim string |
| String | **string_rtrim**(const String buf)
Right trim string |
| String | **string_trim**(const String buf)
Trim string. |
| String | **string_split**(const String buf, const char *search, String *right)
Split string and return left and right Strings |
| uint32_t | **string_split_array**(const String buf, const char *search, String **array)
Split string in an array of strings |
| uint32_t | **string_append**(String buf, const char *fmt, ... )
Append a formatted c-string to `buf`.
If new data would exceed capacity, `buf` stays unmodified. |
| uint32_t | **string_write**(String buf, const char *fmt, ... )
Write a formatted c-string at beginning of `buf`.
If new data would exceed capacity, `buf` stays unmodified. |
| bool | **string_equals**(const String str1, const String str2)
Compares two strings. |
| bool | **string_equals_c**(const String a, const char *b)
Compare strings equality. |
| bool | **string_issigned**(const String buf)
Check if string is signed. |
| bool | **string_isinteger**(const String buf)
Check if string is a valid integer. |
| bool | **string_isfloat**(const String buf)
Check if string is a valid float. |
| bool | **string_isblank**(const String buf)
Check if string is a blank line |
| bool | **string_isalnum**(const String buf, uint32_t pos, bool underscore_dot)
Check if string only contain letters and numbers |
| uint8_t | **string_isrealexp**(const String buf)
Check if string is a valid scientific notation. |
| long | **string_tolong**(const String buf, uint8_t base)
Convert string to integer. Max value: LONG_MAX_MAX - 1. |
| double | **string_todouble**(const String buf)
Convert string to float. Max value: DBL_MAX - 1. |
| string_hash_t | **string_hash**(const String buf, uint8_t version, uint8_t key[16])
String hash. |

-------------------------------