htils 1
A small set of utilities for C programming.
Loading...
Searching...
No Matches
string.h
Go to the documentation of this file.
1#ifndef H2OTILS_STRING_H
2#define H2OTILS_STRING_H
3
9#include <h2o/memory.h>
10
11//
12//
13//
14
15#include <htils/string.h>
16
17//
18//
19//
20
22typedef h2o_iovec_t h2o_string;
23
26
42h2o_string *h2o_string_new(h2o_mem_pool_t *pool, const u64 len);
43
64h2o_string *h2o_string_from_cstr(h2o_mem_pool_t *pool, const cstr *base);
65
78h2o_string *h2o_string_from_string(h2o_mem_pool_t *pool, const string *str);
79
95h2o_string *h2o_string_dup(h2o_mem_pool_t *pool, const h2o_string *str);
96
97//
98//
99//
100
117
131
145
164 u64 end);
165
184 u64 len);
185
186//
187//
188//
189
203
204//
205//
206//
207
221u64 h2o_string_concat(h2o_mem_pool_t *pool, h2o_string *dest,
222 const h2o_string *src);
223
243u64 h2o_string_concatb(h2o_mem_pool_t *pool, h2o_string *dest,
244 const h2o_string *src, const u64 len);
245
262u64 h2o_string_concatf(h2o_mem_pool_t *pool, h2o_string *dest, const cstr *fmt,
263 ...);
264
265//
266//
267//
268
282b32 h2o_stringcmp(const h2o_string *first, const h2o_string *second);
283
300b32 h2o_stringcmpb(const h2o_string *first, const h2o_string *second,
301 const u64 len);
302
316b32 h2o_stringcmp_case(const h2o_string *first, const h2o_string *second);
317
334b32 h2o_stringcmpb_case(const h2o_string *first, const h2o_string *second,
335 const u64 len);
336
337//
338//
339//
340
358u64 h2o_string_split(h2o_string *src, char delim, h2o_string ***h2o_darray,
359 h2o_mem_pool_t *pool);
360
361//
362//
363//
364
375void h2o_string_trim(h2o_string *str);
376
388
400
401//
402//
403//
404
420i64 h2o_string_findc(h2o_string *haystack, char needle);
421
436
437i64 h2o_string_slice_findc(h2o_string_slice haystack, char needle);
438
440 h2o_string_slice needle);
441
443 char needle);
444
445//
446//
447//
448
450#define H2OTILS_STR(lit) h2o_string_from_cstr(pool, lit)
451
452#endif // H2OTILS_STRING_H
uint64_t u64
Definition basictypes.h:18
u32 b32
Definition basictypes.h:39
int64_t i64
Definition basictypes.h:30
char cstr
Definition basictypes.h:55
h2o_iovec_t h2o_string
Definition string.h:22
i64 h2o_string_find_sstr(h2o_string *haystack, h2o_string *needle)
Finds the first occurance of a h2o_string in a h2o_string.
Definition string.c:399
b32 h2o_stringcmp(const h2o_string *first, const h2o_string *second)
Compare two h2o_string.
Definition string.c:235
h2o_string * h2o_string_from_cstr(h2o_mem_pool_t *pool, const cstr *base)
Creates a new h2o_string from a C-string.
Definition string.c:44
h2o_string_slice h2o_string_slice_from_string(const string *str)
Create a h2o_string_slice from a string.
Definition string.c:88
b32 h2o_stringcmpb(const h2o_string *first, const h2o_string *second, const u64 len)
Compare len bytes of each h2o_string.
Definition string.c:249
void h2o_string_trim(h2o_string *str)
Trims whitespace from the start and end of a h2o_string.
Definition string.c:349
h2o_string * h2o_string_dup(h2o_mem_pool_t *pool, const h2o_string *str)
Duplicates from to a new h2o_string.
Definition string.c:137
b32 h2o_stringcmp_case(const h2o_string *first, const h2o_string *second)
Compare each h2o_string, ignoring case.
Definition string.c:269
i64 h2o_string_findc(h2o_string *haystack, char needle)
Finds the first occurance of a character in a h2o_string.
Definition string.c:389
void h2o_string_trim_left(h2o_string *str)
Trims whitespace from the start of a h2o_string.
Definition string.c:358
u64 h2o_string_concat(h2o_mem_pool_t *pool, h2o_string *dest, const h2o_string *src)
Concatenates the first h2o_string to the second.
Definition string.c:155
u64 h2o_string_concatf(h2o_mem_pool_t *pool, h2o_string *dest, const cstr *fmt,...)
Concatenates a formatted C-string to a h2o_string.
Definition string.c:198
h2o_string_slice h2o_string_slice_from_cstr(const cstr *base, u64 len)
Create a h2o_string_slice from a C-string.
Definition string.c:73
h2o_string * h2o_string_from_string(h2o_mem_pool_t *pool, const string *str)
Converts a string to a h2o_string.
Definition string.c:55
i64 h2o_string_slice_findc(h2o_string_slice haystack, char needle)
Definition string.c:416
i64 h2o_string_slice_find_slice(h2o_string_slice haystack, h2o_string_slice needle)
Definition string.c:425
cstr * h2o_string_to_cstr(const h2o_string *str)
Convert a h2o_string to a C-string.
Definition string.c:123
h2o_string * h2o_string_new(h2o_mem_pool_t *pool, const u64 len)
Creates a new h2o_string.
Definition string.c:32
u64 h2o_string_concatb(h2o_mem_pool_t *pool, h2o_string *dest, const h2o_string *src, const u64 len)
Concatenates len bytes of src to dest.
Definition string.c:176
h2o_string_slice h2o_string_slice_from_h2o_string(const h2o_string *str)
Create a h2o_string_slice from a h2o_string.
Definition string.c:80
h2o_string h2o_string_slice
Definition string.h:25
void h2o_string_trim_right(h2o_string *str)
Trims whitespace from the end of a h2o_string.
Definition string.c:372
h2o_string_slice h2o_string_slice_slice_len(h2o_string_slice slice, u64 start, u64 len)
Slice a part of a h2o_string_slice to be len.
Definition string.c:109
u64 h2o_string_split(h2o_string *src, char delim, h2o_string ***h2o_darray, h2o_mem_pool_t *pool)
Splits a h2o_string by a delimiter.
Definition string.c:314
h2o_string_slice h2o_string_slice_slice(h2o_string_slice slice, u64 start, u64 end)
Slice a part of a h2o_string_slice.
Definition string.c:96
i64 h2o_string_slice_findc_from(h2o_string_slice haystack, u64 start, char needle)
Definition string.c:440
b32 h2o_stringcmpb_case(const h2o_string *first, const h2o_string *second, const u64 len)
Compare len bytes of each h2o_string, ignoring case.
Definition string.c:283