Interface: StringMan Arquivos: stringman.h Última atualização: 10/05/2005 Autor: Luiz Henrique Shigunov |
Descrição |
Funções para o sistema | |
0x00 - Compare - Compara duas strings 0x01 - Concatenate - Concatena duas strings 0x02 - Copy - Copia uma string 0x03 - FindChar - Encontra um caracter numa string 0x04 - FindLastChar - Encontra um caracter numa string começando do fim 0x05 - Length - Obtem o tamanho de uma string 0x06 - NCompare - Compara N caracteres de duas strings 0x07 - NConcatenate - Concatena N caracteres de duas strings |
0x08 - NCopy - Copia N caracteres de uma string 0x0c - NLength - Obtem o tamanho de uma string 0x0d - NPrintF - Formata uma string 0x0a - NPrintFArgs - Formata uma string passando um vetor de parâmetros 0x09 - PrintF - Formata uma string 0x0e - ScanF - Leitura formatada 0x0f - ScanFArgs - Leitura formatada passando um vetor de parâmetros 0x0b - StrToInt - Converte uma string num número inteiro |
Esta página descreve a interface StringMan que trata da manipulação de strings.
long StringMan_Compare(const char *s1, const char *s2);
Esta função compara s1 com s2. É uma comparação sensível a letras maiúsculas e minúsculas.
< 0 - se s1 for menor que s2;
= 0 - se s1 for igual a s2;
> 0 - se s1 for maior que s2.
void StringMan_Concatenate(char *dest, const char *src);
Esta função concatena src em dest sobrescrevendo o 0 do final de dest e, por fim, colocando 0 no final de dest.
As strings não podem se sobrepor e dest tem que ser grande o suficiente.
void StringMan_Copy(char *dest, const char *src);
Esta função copia a string apontada por src (incluindo o 0 final) para a string apontada por dest.
As strings não podem se sobrepor e dest tem que ser grande o suficiente.
char *StringMan_FindChar(const char *s, long c);
Esta função encontra a primeira ocorrência do caracter c na string s.
O ponteiro para o caracter se ele existir;
NULL se ele não existir.
char *StringMan_FindLastChar(const char *s, long c);
Esta função encontra a última ocorrência do caracter c na string s.
O ponteiro para o caracter se ele existir;
NULL se ele não existir.
unsigned long StringMan_Length(const char *s);
Esta função calcula o tamanho da string s não incluindo o último zero.
long StringMan_NCompare(const char *s1, const char *s2, unsigned long count);
Esta função compara count bytes de s1 com s2. É uma comparação sensível a letras maiúsculas e minúsculas.
< 0 - se s1 for menor que s2;
= 0 - se s1 for igual a s2;
> 0 - se s1 for maior que s2.
void StringMan_NConcatenate(char *dest, const char *src, unsigned long count);
Esta função concatena count bytes de src em dest sobrescrevendo o 0 do final de dest.
As strings não podem se sobrepor e dest tem que ser grande o suficiente.
long StringMan_NCopy(char *dest, const char *src, unsigned long count);
Esta função copia count menos 1 bytes da string src para a string dest, terminando dest com zero, ou seja, dest sempre será uma string.
As strings não podem se sobrepor e dest tem que ser grande o suficiente.
Se count for zero nada acontecerá e a função retorna zero.
Se count for 1 dest será terminada com zero e a função retorna zero somente se src for uma string vazia, ou seja, copiou até o fim.
Zero se copiou até o fim de src ou outro valor caso contrário.
unsigned long StringMan_NLength(const char *s, unsigned long count);
Esta função calcula o tamanho da string s não incluindo o zero final, mas sem passar de count caracteres.
Com isso, a string s só será examinada nos primeiros count caracteres.
O número de caracteres em s ou count se o tamanho de s for maior que count.
long StringMan_NPrintF(char *buf, unsigned long size, const char *fmt, ...);
Esta função coloca em buf a string formatada de acordo com fmt, porém não escreve mais que size caracteres. Os 3 pontos significam que podem vir uma quantidade variável de parâmetros.
fmt aceita as mesmas opções que NPrintFArgs.
O número de bytes escritos ou o número de bytes que seriam escritos no caso de size não ser grande o suficiente.
long StringMan_NPrintFArgs(char *buf, unsigned long size, const char *fmt, va_list args);
Esta função coloca em buf a string formatada de acordo com fmt, porém não escreve mais que size caracteres. args é um vetor com os parâmetros.
O arquivo stdarg.h deve ser incluído. É nesse arquivo que va_list é definido.
Esta função suporta os seguintes flags: #, 0, -, + e ' ' (espaço), os seguintes modificadores de tamanho: h, l, ll, L e Z e os seguintes formatadores: d, i, o, u, x, X, c, s, p, n e %.
O número de bytes escritos ou o número de bytes que seriam escritos no caso de size não ser grande o suficiente.
long StringMan_PrintF(char *buf, const char *fmt, ...);
Esta função coloca em buf a string formatada de acordo com fmt. Os 3 pontos significam que podem vir uma quantidade variável de parâmetros.
fmt aceita as mesmas opções que NPrintFArgs.
long StringMan_ScanF(const char *buf, const char *fmt, ...);
Esta função lê (scans) buf de acordo com fmt. Os 3 pontos significam que podem vir uma quantidade variável de parâmetros.
fmt aceita as mesmas opções que ScanFArgs.
long StringMan_ScanFArgs(const char *buf, const char *fmt, va_list args);
Esta função lê (scans) buf de acordo com fmt. args é um vetor com os parâmetros.
O arquivo stdarg.h deve ser incluído. É nesse arquivo que va_list é definido.
Esta função suporta os seguintes flags: *, os seguintes modificadores de tamanho: h, l, L e Z e os seguintes formatadores: d, i, o, u, x, X, c, s, n e %.
long StringMan_StrToInt(const char *str, char **endstr, long base, long *error);
Esta função converte a string str para um valor long de acordo com a base base.
A string deve começar com um número qualquer de espaço (' ', '\n', '\t', '\r', '\f', '\v') seguido de um sinal '+' ou '-'. Se base for 0 ou 16, a string pode ter um prefixo '0x', e o número será lido com base 16.
Se base for 0 e o número começar com 0, a base será 8 (octal), do contrário base 10.
A conversão termina no primeiro caracter inválido para a base.
endstr, se for diferente de NULL, indica o fim da str convertida. Se ocorrer erro, este será indicado em error, se error for diferente de NULL.
base deve ser >= 2 e <= 36. Se base for 0 a base será descoberta.
O número convertido;
0 se base incorreta e error será 1;
O maior número positivo se ocorrer overflow e error será 2;
O menor número negativo se ocorrer underflow e error será 2.