LibTRO 0
Uma biblioteca com funções semelhantes às do C para fins educacionais na Eletrônica, IF Sul Pelotas.
Carregando...
Procurando...
Nenhuma entrada encontrado
string.h
Ir para a documentação desse arquivo.
1
2
3#ifndef TRO_STRING_H_
4#define TRO_STRING_H_
5
6#include "tro/private/api.h"
7#include "tro/private/bool.h"
8
9#include <stddef.h>
10#include <stdint.h>
11#if TRO__USE_STDBOOL
12# include <stdbool.h>
13#endif
14#include <stdarg.h>
15
16#include "tro/dybuffer.h"
17#include "tro/uchar.h"
18
19TRO__C_API_BEGIN
20
26TRO__API size_t tro_strulen(const char *str);
27
33TRO__API size_t tro_str16ulen(const tro_char16 *str);
34
46TRO__API size_t tro_conv_str_to_str16(const char *in, size_t inlen,
47 tro_char16 *out, size_t outcap);
48
60TRO__API size_t tro_conv_str16_to_str(const tro_char16 *in, size_t inlen,
61 char *out, size_t outcap);
62
75TRO__API tro_char16 *tro_cnvlloc_str_to_str16(const char *in, size_t inlen,
76 size_t *lenout);
77
90TRO__API char *tro_cnvlloc_str16_to_str(const tro_char16 *in, size_t inlen,
91 size_t *lenout);
92
100TRO__API size_t tro_str16len(const tro_char16 *str);
101
110TRO__API size_t tro_str16nlen(const tro_char16 *str, size_t maxlen);
111
121TRO__API int tro_str16cmp(const tro_char16 *s1, const tro_char16 *s2);
122
133TRO__API int tro_str16ncmp(const tro_char16 *s1, const tro_char16 *s2,
134 size_t maxlen);
135
153#define tro_strdybuf_dybuffer(buf) \
154 ((tro_dybuffer_obj){ \
155 .obj = (void *)buf, \
156 .vtable = tro_strdybuf_dybuffer_vt, \
157 })
158
168TRO__API tro_strdybuf *tro_create_strdybuf(size_t pagecap);
169
174
184TRO__API bool tro_strdybuf_writes(tro_strdybuf *buf, const char *data,
185 size_t datal);
186
196TRO__API bool tro_strdybuf_writes16(tro_strdybuf *buf, const tro_char16 *data,
197 size_t datal);
198
206TRO__API bool tro_strdybuf_writeb(tro_strdybuf *buf, const uint8_t *data,
207 size_t datal);
208
217 size_t count);
218
225
233TRO__API size_t tro_strdybuf_get(tro_strdybuf *buf, char *out, size_t outcap);
234
243TRO__API char *tro_strdybuf_getlloc(tro_strdybuf *buf, size_t *outlen);
244
262#define tro_str16dybuf_dybuffer(buf) \
263 ((tro_dybuffer_obj){ \
264 .obj = (void *)buf, \
265 .vtable = tro_str16dybuf_dybuffer_vt, \
266 })
267
277TRO__API tro_str16dybuf *tro_create_str16dybuf(size_t pagecap);
278
283
293TRO__API bool tro_str16dybuf_writes(tro_str16dybuf *buf, const char *data,
294 size_t datal);
295
306 const tro_char16 *data, size_t datal);
307
315TRO__API bool tro_str16dybuf_writeb(tro_str16dybuf *buf, const uint8_t *data,
316 size_t datal);
317
326 size_t count);
327
334
343 size_t outcap);
344
354 size_t *outlen);
355
582
592TRO__API bool tro_sfmt(tro_dybuffer_obj buf, const char *format, ...);
593
605TRO__API bool tro_vsfmt(tro_dybuffer_obj buf, const char *format, va_list args);
606
616TRO__API bool tro_sfmt16(tro_dybuffer_obj buf, const tro_char16 *format, ...);
617
629TRO__API bool tro_vsfmt16(tro_dybuffer_obj buf, const tro_char16 *format,
630 va_list args);
631
643TRO__API char *tro_str_fmt(size_t *outlen, const char *format, ...);
644
658TRO__API char *tro_vstr_fmt(size_t *outlen, const char *format, va_list args);
659
671TRO__API char *tro_str_fmt16(size_t *outlen, const tro_char16 *format, ...);
672
686TRO__API char *tro_vstr_fmt16(size_t *outlen, const tro_char16 *format,
687 va_list args);
688
700TRO__API tro_char16 *tro_str16_fmt(size_t *outlen, const char *format, ...);
701
715TRO__API tro_char16 *tro_vstr16_fmt(size_t *outlen, const char *format,
716 va_list args);
717
729TRO__API tro_char16 *tro_str16_fmt16(size_t *outlen, const tro_char16 *format,
730 ...);
731
745TRO__API tro_char16 *tro_vstr16_fmt16(size_t *outlen, const tro_char16 *format,
746 va_list args);
747
748TRO__C_API_END
749
750#endif // TRO_STRING_H_
tro_dybuf_pref
Definição dybuffer.h:26
tro_strdybuf * tro_create_strdybuf(size_t pagecap)
char * tro_str_fmt(size_t *outlen, const char *format,...)
char * tro_vstr_fmt16(size_t *outlen, const tro_char16 *format, va_list args)
int tro_str16ncmp(const tro_char16 *s1, const tro_char16 *s2, size_t maxlen)
tro_char16 * tro_vstr16_fmt16(size_t *outlen, const tro_char16 *format, va_list args)
bool tro_str16dybuf_writes16(tro_str16dybuf *buf, const tro_char16 *data, size_t datal)
bool tro_strdybuf_writeb(tro_strdybuf *buf, const uint8_t *data, size_t datal)
size_t tro_strulen(const char *str)
bool tro_vsfmt(tro_dybuffer_obj buf, const char *format, va_list args)
tro_str16dybuf * tro_create_str16dybuf(size_t pagecap)
char * tro_cnvlloc_str16_to_str(const tro_char16 *in, size_t inlen, size_t *lenout)
size_t tro_conv_str_to_str16(const char *in, size_t inlen, tro_char16 *out, size_t outcap)
tro_char16 * tro_str16_fmt(size_t *outlen, const char *format,...)
tro_dybuf_pref tro_strdybuf_preference(const tro_strdybuf *buf)
bool tro_sfmt16(tro_dybuffer_obj buf, const tro_char16 *format,...)
size_t tro_str16ulen(const tro_char16 *str)
size_t tro_strdybuf_get(tro_strdybuf *buf, char *out, size_t outcap)
const tro_dybuffer_i *const tro_strdybuf_dybuffer_vt
Definição string.h:147
bool tro_str16dybuf_writeb(tro_str16dybuf *buf, const uint8_t *data, size_t datal)
size_t tro_str16len(const tro_char16 *str)
tro_dybuf_pref tro_str16dybuf_preference(const tro_str16dybuf *buf)
bool tro_strdybuf_writes16(tro_strdybuf *buf, const tro_char16 *data, size_t datal)
bool tro_str16dybuf_writec(tro_str16dybuf *buf, tro_urune rune, size_t count)
tro_char16 * tro_str16dybuf_getlloc(tro_str16dybuf *buf, size_t *outlen)
struct tro_strdybuf tro_strdybuf
Definição string.h:142
size_t tro_str16nlen(const tro_char16 *str, size_t maxlen)
int tro_str16cmp(const tro_char16 *s1, const tro_char16 *s2)
char * tro_strdybuf_getlloc(tro_strdybuf *buf, size_t *outlen)
bool tro_strdybuf_writes(tro_strdybuf *buf, const char *data, size_t datal)
char * tro_str_fmt16(size_t *outlen, const tro_char16 *format,...)
bool tro_strdybuf_writec(tro_strdybuf *buf, tro_urune rune, size_t count)
void tro_destroy_strdybuf(tro_strdybuf *buf)
size_t tro_str16dybuf_get(tro_str16dybuf *buf, tro_char16 *out, size_t outcap)
bool tro_str16dybuf_writes(tro_str16dybuf *buf, const char *data, size_t datal)
const tro_dybuffer_i *const tro_str16dybuf_dybuffer_vt
Definição string.h:256
bool tro_sfmt(tro_dybuffer_obj buf, const char *format,...)
tro_char16 * tro_vstr16_fmt(size_t *outlen, const char *format, va_list args)
tro_char16 * tro_str16_fmt16(size_t *outlen, const tro_char16 *format,...)
void tro_destroy_str16dybuf(tro_str16dybuf *buf)
size_t tro_conv_str16_to_str(const tro_char16 *in, size_t inlen, char *out, size_t outcap)
char * tro_vstr_fmt(size_t *outlen, const char *format, va_list args)
struct tro_str16dybuf tro_str16dybuf
Definição string.h:251
bool tro_vsfmt16(tro_dybuffer_obj buf, const tro_char16 *format, va_list args)
tro_char16 * tro_cnvlloc_str_to_str16(const char *in, size_t inlen, size_t *lenout)
Definição dybuffer.h:53
Definição dybuffer.h:107
uint16_t tro_char16
Definição uchar.h:199
uint32_t tro_urune
Definição uchar.h:51