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
Referência do Arquivo string.h

Ir para o código-fonte desse arquivo.

Definições e Macros

#define tro_strdybuf_dybuffer(buf)
#define tro_str16dybuf_dybuffer(buf)

Definições de Tipos

typedef struct tro_strdybuf tro_strdybuf
typedef struct tro_str16dybuf tro_str16dybuf

Funções

size_t tro_strulen (const char *str)
size_t tro_str16ulen (const tro_char16 *str)
size_t tro_conv_str_to_str16 (const char *in, size_t inlen, tro_char16 *out, size_t outcap)
size_t tro_conv_str16_to_str (const tro_char16 *in, size_t inlen, char *out, size_t outcap)
tro_char16tro_cnvlloc_str_to_str16 (const char *in, size_t inlen, size_t *lenout)
char * tro_cnvlloc_str16_to_str (const tro_char16 *in, size_t inlen, size_t *lenout)
size_t tro_str16len (const tro_char16 *str)
size_t tro_str16nlen (const tro_char16 *str, size_t maxlen)
int tro_str16cmp (const tro_char16 *s1, const tro_char16 *s2)
int tro_str16ncmp (const tro_char16 *s1, const tro_char16 *s2, size_t maxlen)
tro_strdybuftro_create_strdybuf (size_t pagecap)
void tro_destroy_strdybuf (tro_strdybuf *buf)
bool tro_strdybuf_writes (tro_strdybuf *buf, const char *data, size_t datal)
bool tro_strdybuf_writes16 (tro_strdybuf *buf, const tro_char16 *data, size_t datal)
bool tro_strdybuf_writeb (tro_strdybuf *buf, const uint8_t *data, size_t datal)
bool tro_strdybuf_writec (tro_strdybuf *buf, tro_urune rune, size_t count)
tro_dybuf_pref tro_strdybuf_preference (const tro_strdybuf *buf)
size_t tro_strdybuf_get (tro_strdybuf *buf, char *out, size_t outcap)
char * tro_strdybuf_getlloc (tro_strdybuf *buf, size_t *outlen)
tro_str16dybuftro_create_str16dybuf (size_t pagecap)
void tro_destroy_str16dybuf (tro_str16dybuf *buf)
bool tro_str16dybuf_writes (tro_str16dybuf *buf, const char *data, size_t datal)
bool tro_str16dybuf_writes16 (tro_str16dybuf *buf, const tro_char16 *data, size_t datal)
bool tro_str16dybuf_writeb (tro_str16dybuf *buf, const uint8_t *data, size_t datal)
bool tro_str16dybuf_writec (tro_str16dybuf *buf, tro_urune rune, size_t count)
tro_dybuf_pref tro_str16dybuf_preference (const tro_str16dybuf *buf)
size_t tro_str16dybuf_get (tro_str16dybuf *buf, tro_char16 *out, size_t outcap)
tro_char16tro_str16dybuf_getlloc (tro_str16dybuf *buf, size_t *outlen)
bool tro_sfmt (tro_dybuffer_obj buf, const char *format,...)
bool tro_vsfmt (tro_dybuffer_obj buf, const char *format, va_list args)
bool tro_sfmt16 (tro_dybuffer_obj buf, const tro_char16 *format,...)
bool tro_vsfmt16 (tro_dybuffer_obj buf, const tro_char16 *format, va_list args)
char * tro_str_fmt (size_t *outlen, const char *format,...)
char * tro_vstr_fmt (size_t *outlen, const char *format, va_list args)
char * tro_str_fmt16 (size_t *outlen, const tro_char16 *format,...)
char * tro_vstr_fmt16 (size_t *outlen, const tro_char16 *format, va_list args)
tro_char16tro_str16_fmt (size_t *outlen, const char *format,...)
tro_char16tro_vstr16_fmt (size_t *outlen, const char *format, va_list args)
tro_char16tro_str16_fmt16 (size_t *outlen, const tro_char16 *format,...)
tro_char16tro_vstr16_fmt16 (size_t *outlen, const tro_char16 *format, va_list args)

Variáveis

const tro_dybuffer_i *const tro_strdybuf_dybuffer_vt
const tro_dybuffer_i *const tro_str16dybuf_dybuffer_vt

Definições e macros

◆ tro_strdybuf_dybuffer

#define tro_strdybuf_dybuffer ( buf)
Valor:
.obj = (void *)buf, \
})
const tro_dybuffer_i *const tro_strdybuf_dybuffer_vt
Definição string.h:147
Definição dybuffer.h:107

Macro de cast de tro_strdybuf para tro_dybuffer_obj.

◆ tro_str16dybuf_dybuffer

#define tro_str16dybuf_dybuffer ( buf)
Valor:
.obj = (void *)buf, \
})
const tro_dybuffer_i *const tro_str16dybuf_dybuffer_vt
Definição string.h:256

Macro de cast de tro_str16dybuf para tro_dybuffer_obj.

Definições dos tipos

◆ tro_strdybuf

typedef struct tro_strdybuf tro_strdybuf

Um buffer dinâmico de string UTF-8 que implementa a interface tro_dybuffer

Veja também
tro_strdybuf_dybuffer

◆ tro_str16dybuf

Um buffer dinâmico de string UTF-16 que implementa a interface tro_dybuffer

Veja também
tro_str16dybuf_dybuffer

Funções

◆ tro_strulen()

size_t tro_strulen ( const char * str)
Parâmetros
stré uma string UTF-8 terminada em '\0'.
Retorna
o comprimento de str em runas (code points).

◆ tro_str16ulen()

size_t tro_str16ulen ( const tro_char16 * str)
Parâmetros
stré uma string UTF-16 terminada em '\0'.
Retorna
o comprimento de str em runas (code points).

◆ tro_conv_str_to_str16()

size_t tro_conv_str_to_str16 ( const char * in,
size_t inlen,
tro_char16 * out,
size_t outcap )

Converte uma string UTF-8 em uma string UTF-16.

Parâmetros
iné a string UTF-8.
inlené um comprimento de in. Caso seja 0, se assume in terminado em '\0'.
outé onde a string UTF-16 será escrita.
outcapé a capacidade de out.
Retorna
o comprimento final da string UTF-16.

◆ tro_conv_str16_to_str()

size_t tro_conv_str16_to_str ( const tro_char16 * in,
size_t inlen,
char * out,
size_t outcap )

Converte uma string UTF-16 em uma string UTF-8.

Parâmetros
iné a string UTF-16.
inlené um comprimento de in. Caso seja 0, se assume in terminado em '\0'.
outé onde a string UTF-8 será escrita.
outcapé a capacidade de out.
Retorna
o comprimento final da string UTF-8.

◆ tro_cnvlloc_str_to_str16()

tro_char16 * tro_cnvlloc_str_to_str16 ( const char * in,
size_t inlen,
size_t * lenout )

Converte uma string UTF-8 em uma string UTF-16.

Parâmetros
iné a string UTF-8.
inlené um comprimento de in. Caso seja 0, se assume in terminado em '\0'.
lenouté um ponteiro para armazenar o comprimento final da string UTF-16. Pode ser NULL.
Retorna
a string UTF-16 alocada via malloc, e precisa ser liberada com free.

◆ tro_cnvlloc_str16_to_str()

char * tro_cnvlloc_str16_to_str ( const tro_char16 * in,
size_t inlen,
size_t * lenout )

Converte uma string UTF-16 em uma string UTF-8.

Parâmetros
iné a string UTF-16.
inlené um comprimento de in. Caso seja 0, se assume in terminado em '\0'.
lenouté um ponteiro para armazenar o comprimento final da string UTF-8. Pode ser NULL.
Retorna
a string UTF-8 alocada via malloc, e precisa ser liberada com free.

◆ tro_str16len()

size_t tro_str16len ( const tro_char16 * str)

Versão UTF-16 do strlen padrão do C.

Parâmetros
stré uma string UTF-16 terminada em '\0'.
Retorna
o número de surrogates de str.

◆ tro_str16nlen()

size_t tro_str16nlen ( const tro_char16 * str,
size_t maxlen )

Versão UTF-16 do strnlen padrão do C.

Parâmetros
stré uma string UTF-16 terminada em '\0'.
maxlené o comprimento máximo a ser testado.
Retorna
o número de surrogates de str até maxlen.

◆ tro_str16cmp()

int tro_str16cmp ( const tro_char16 * s1,
const tro_char16 * s2 )

Versão UTF-16 do strcmp padrão do C.

Parâmetros
s1é uma string UTF-16 terminada em '\0'.
s2é outra string UTF-16 terminada em '\0'.
Retorna
a diferença entre os primeiros surrogates diferentes, 0 significa que s1 e s2 são iguais.

◆ tro_str16ncmp()

int tro_str16ncmp ( const tro_char16 * s1,
const tro_char16 * s2,
size_t maxlen )

Versão UTF-16 do strncmp padrão do C.

Parâmetros
s1é uma string UTF-16 terminada em '\0'.
s2é outra string UTF-16 terminada em '\0'.
maxlené o comprimento máximo a ser testado.
Retorna
a diferença entre os primeiros surrogates diferentes, 0 significa que s1 e s2 são iguais até maxlen.

◆ tro_create_strdybuf()

tro_strdybuf * tro_create_strdybuf ( size_t pagecap)

Cria um objeto tro_strdybuf

Parâmetros
pagecapé o tamanho de cada página de memória.
Retorna
o ponteiro para o objeto. NULL em caso de falha.
Veja também
tro_destroy_strdybuf

◆ tro_destroy_strdybuf()

void tro_destroy_strdybuf ( tro_strdybuf * buf)
Parâmetros
bufé o objeto a ser destruído.

◆ tro_strdybuf_writes()

bool tro_strdybuf_writes ( tro_strdybuf * buf,
const char * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma string UTF-8.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_strdybuf_writes16()

bool tro_strdybuf_writes16 ( tro_strdybuf * buf,
const tro_char16 * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma string UTF-16.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_strdybuf_writeb()

bool tro_strdybuf_writeb ( tro_strdybuf * buf,
const uint8_t * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma sequência de bytes arbitrária.
datalé o comprimento de data.
Retorna
true se sucedido, false se falhou.

◆ tro_strdybuf_writec()

bool tro_strdybuf_writec ( tro_strdybuf * buf,
tro_urune rune,
size_t count )
Parâmetros
bufo objeto.
runeé uma runa (code point).
countdiz quantas vezes se deve escrever rune.
Retorna
true se sucedido, false se falhou.

◆ tro_strdybuf_preference()

tro_dybuf_pref tro_strdybuf_preference ( const tro_strdybuf * buf)
Parâmetros
bufo objeto.
Retorna
a preferência de encoding.

◆ tro_strdybuf_get()

size_t tro_strdybuf_get ( tro_strdybuf * buf,
char * out,
size_t outcap )
Parâmetros
bufo objeto.
outé onde será escrita a string formada. Pode ser NULL.
outcapé a capacidade de out (ignorado se out for NULL).
Retorna
o comprimento final da string.

◆ tro_strdybuf_getlloc()

char * tro_strdybuf_getlloc ( tro_strdybuf * buf,
size_t * outlen )
Parâmetros
bufo objeto.
outlené um ponteiro para armazenar o comprimento final da string
Retorna
a string formada alocada via malloc, e precisa ser liberada com free.

◆ tro_create_str16dybuf()

tro_str16dybuf * tro_create_str16dybuf ( size_t pagecap)

Cria um objeto tro_str16dybuf

Parâmetros
pagecapé o tamanho de cada página de memória.
Retorna
o ponteiro para o objeto. NULL em caso de falha.
Veja também
tro_destroy_str16dybuf

◆ tro_destroy_str16dybuf()

void tro_destroy_str16dybuf ( tro_str16dybuf * buf)
Parâmetros
bufé o objeto a ser destruído.

◆ tro_str16dybuf_writes()

bool tro_str16dybuf_writes ( tro_str16dybuf * buf,
const char * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma string UTF-8.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_str16dybuf_writes16()

bool tro_str16dybuf_writes16 ( tro_str16dybuf * buf,
const tro_char16 * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma string UTF-16.
datalé o comprimento de data, caso seja 0, se assume data terminado em '\0'.
Retorna
true se sucedido, false se falhou.

◆ tro_str16dybuf_writeb()

bool tro_str16dybuf_writeb ( tro_str16dybuf * buf,
const uint8_t * data,
size_t datal )
Parâmetros
bufo objeto.
dataé uma sequência de bytes arbitrária.
datalé o comprimento de data.
Retorna
true se sucedido, false se falhou.

◆ tro_str16dybuf_writec()

bool tro_str16dybuf_writec ( tro_str16dybuf * buf,
tro_urune rune,
size_t count )
Parâmetros
bufo objeto.
runeé uma runa (code point).
countdiz quantas vezes se deve escrever rune.
Retorna
true se sucedido, false se falhou.

◆ tro_str16dybuf_preference()

tro_dybuf_pref tro_str16dybuf_preference ( const tro_str16dybuf * buf)
Parâmetros
bufo objeto.
Retorna
a preferência de encoding.

◆ tro_str16dybuf_get()

size_t tro_str16dybuf_get ( tro_str16dybuf * buf,
tro_char16 * out,
size_t outcap )
Parâmetros
bufo objeto.
outé onde será escrita a string formada. Pode ser NULL.
outcapé a capacidade de out (ignorado se out for NULL).
Retorna
o comprimento final da string.

◆ tro_str16dybuf_getlloc()

tro_char16 * tro_str16dybuf_getlloc ( tro_str16dybuf * buf,
size_t * outlen )
Parâmetros
bufo objeto.
outlené um ponteiro para armazenar o comprimento final da string
Retorna
a string formada alocada via malloc, e precisa ser liberada com free.

◆ tro_sfmt()

bool tro_sfmt ( tro_dybuffer_obj buf,
const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
bufé o buffer de destino.
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vsfmt()

bool tro_vsfmt ( tro_dybuffer_obj buf,
const char * format,
va_list args )

Implementação com lista variádica de tro_sfmt.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
bufé o buffer de destino.
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_sfmt16()

bool tro_sfmt16 ( tro_dybuffer_obj buf,
const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
bufé o buffer de destino.
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_vsfmt16()

bool tro_vsfmt16 ( tro_dybuffer_obj buf,
const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_sfmt16.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
bufé o buffer de destino.
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
true se sucedido, false se falhou.

◆ tro_str_fmt()

char * tro_str_fmt ( size_t * outlen,
const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
uma string UTF-8 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_vstr_fmt()

char * tro_vstr_fmt ( size_t * outlen,
const char * format,
va_list args )

Implementação com lista variádica de tro_str_fmt.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
uma string UTF-8 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_str_fmt16()

char * tro_str_fmt16 ( size_t * outlen,
const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
uma string UTF-8 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_vstr_fmt16()

char * tro_vstr_fmt16 ( size_t * outlen,
const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_str_fmt16.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
uma string UTF-8 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_str16_fmt()

tro_char16 * tro_str16_fmt ( size_t * outlen,
const char * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-8.
...argumentos baseados em format.
Retorna
uma string UTF-16 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_vstr16_fmt()

tro_char16 * tro_vstr16_fmt ( size_t * outlen,
const char * format,
va_list args )

Implementação com lista variádica de tro_str16_fmt.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-8.
argslista variádica de argumentos baseados em format.
Retorna
uma string UTF-16 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_str16_fmt16()

tro_char16 * tro_str16_fmt16 ( size_t * outlen,
const tro_char16 * format,
... )

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-16.
...argumentos baseados em format.
Retorna
uma string UTF-16 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

◆ tro_vstr16_fmt16()

tro_char16 * tro_vstr16_fmt16 ( size_t * outlen,
const tro_char16 * format,
va_list args )

Implementação com lista variádica de tro_str16_fmt16.

Esta função segue o padrão Especificadores de Formato TRO.

Parâmetros
outlené onde será armazenado o comprimento final da string. Pode ser NULL.
formaté a string de formatação em UTF-16.
argslista variádica de argumentos baseados em format.
Retorna
uma string UTF-16 alocada via malloc que deve ser liberada com free, NULL em caso de falha.

Variáveis

◆ tro_strdybuf_dybuffer_vt

const tro_dybuffer_i* const tro_strdybuf_dybuffer_vt

Tabela virtual com os métodos de tro_strdybuf para a interface tro_dybuffer.

◆ tro_str16dybuf_dybuffer_vt

const tro_dybuffer_i* const tro_str16dybuf_dybuffer_vt

Tabela virtual com os métodos de tro_str16dybuf para a interface tro_dybuffer.