picofuse

string.h
Go to the documentation of this file.
1 
24 #pragma once
25 #include <picofuse/sys.h>
26 #include <stdbool.h>
27 #include <stddef.h>
28 #include <stdint.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
35 // METHODS
36 
43 extern size_t sys_string_bytes(const char *str);
44 
51 extern size_t sys_string_runes(const char *str);
52 
61 extern ptrdiff_t sys_string_compare(const char *a, const char *b);
62 
69 extern char *sys_string_to_upper(char *str);
70 
77 extern char *sys_string_to_lower(char *str);
78 
85 extern char *sys_string_trimspace(char *str);
86 
94 extern char *sys_string_trimprefix(char *s, const char *prefix);
95 
104 extern char *sys_string_trimsuffix(char *s, const char *suffix);
105 
114 extern bool sys_string_hasprefix(const char *s, const char *prefix);
115 
124 extern bool sys_string_hassuffix(const char *s, const char *suffix);
125 
135 extern ptrdiff_t sys_string_contains(const char *s, const char *substr);
136 
145 extern sys_iostream_t *sys_string_read(const char *str);
146 
148 // PARSING
149 
170 extern bool sys_string_parse_escape(const char *str, size_t len, rune_t *rune);
171 
183 extern bool sys_string_parse_bool(const char *str, bool *out);
184 
213 extern ptrdiff_t sys_string_parse_quoted(const char *str, size_t len, char *out,
214  size_t cap);
215 
236 extern bool sys_string_parse_int32(const char *str, size_t len, int32_t *value);
237 
253 extern bool sys_string_parse_int64(const char *str, size_t len, int64_t *value);
254 
272 extern bool sys_string_parse_uint32(const char *str, size_t len, uint32_t *value);
273 
289 extern bool sys_string_parse_uint64(const char *str, size_t len, uint64_t *value);
290 
314 extern bool sys_string_parse_float32(const char *str, size_t len, float *value);
315 
333 extern bool sys_string_parse_float64(const char *str, size_t len, double *value);
334 
336 
337 #ifdef __cplusplus
338 }
339 #endif
bool sys_string_parse_int32(const char *str, size_t len, int32_t *value)
Parse a signed 32-bit integer.
int32_t rune_t
A single decoded Unicode code point.
Definition: rune.h:28
bool sys_string_parse_float32(const char *str, size_t len, float *value)
Parse a 32-bit floating-point number.
size_t sys_string_bytes(const char *str)
Return the length of a null-terminated string, in bytes.
char * sys_string_trimsuffix(char *s, const char *suffix)
Remove suffix from the end of s, if present.
ptrdiff_t sys_string_contains(const char *s, const char *substr)
Find the first byte offset where substr occurs within s.
char * sys_string_trimprefix(char *s, const char *prefix)
Remove prefix from the start of s, if present.
bool sys_string_hasprefix(const char *s, const char *prefix)
Reports whether s begins with prefix.
System abstraction headers and process lifecycle hooks.
bool sys_string_parse_float64(const char *str, size_t len, double *value)
Parse a 64-bit floating-point number.
ptrdiff_t sys_string_compare(const char *a, const char *b)
Compare two null-terminated strings byte by byte.
struct sys_iostream_t sys_iostream_t
An opaque byte stream.
Definition: io.h:68
char * sys_string_to_lower(char *str)
Convert a string to lowercase in place.
size_t sys_string_runes(const char *str)
Count the runes in a null-terminated UTF-8 string.
bool sys_string_hassuffix(const char *s, const char *suffix)
Reports whether s ends with suffix.
char * sys_string_trimspace(char *str)
Trim leading and trailing whitespace from a string in place.
bool sys_string_parse_uint32(const char *str, size_t len, uint32_t *value)
Parse an unsigned 32-bit integer.
bool sys_string_parse_uint64(const char *str, size_t len, uint64_t *value)
Parse an unsigned 64-bit integer.
bool sys_string_parse_int64(const char *str, size_t len, int64_t *value)
Parse a signed 64-bit integer.
bool sys_string_parse_bool(const char *str, bool *out)
Parse "true" or "false" into a bool.
bool sys_string_parse_escape(const char *str, size_t len, rune_t *rune)
Decode a JSON-style backslash escape sequence into the rune it denotes.
char * sys_string_to_upper(char *str)
Convert a string to uppercase in place.
sys_iostream_t * sys_string_read(const char *str)
Wrap a string in a read-only stream.
ptrdiff_t sys_string_parse_quoted(const char *str, size_t len, char *out, size_t cap)
Decode a quoted string into its unescaped content.