return 0 apenas para informar que o programa chegou ao seu final e que está tudo OK.
1.7 BIBLIotecas e funções úteIs da LInguagem c 1 Funções de entrada e saída: stdio.h
Operações em arquivos
int remove
• (const char *): apaga o arquivo.
int rename
• (const char *,const char *): renomeia o arquivo.
Acesso a arquivos
int fclose
• (FILE *): fecha o arquivo.
int fflush
• (FILE *): limpa o buffer. Dados não escritos no buffer de saída são gravados no arquivo.
FILE * fopen
• (const char *, const char *): abre o arquivo.
void setbuf
Entrada/saída formatada
int fprintf
• (FILE *,const char *, ...): grava uma saída formatada em arquivo.
int fscanf
• (FILE *,const char *, ...): lê dados formatados a partir de arquivo.
int printf
• (const char *, ...): imprime dados formatados na saída-padrão (monitor).
int scanf
• (const char *, ...): lê dados formatados da entrada-padrão (teclado).
int sprintf
• (char *, const char *, ...): grava dados formatados em uma string.
int sscanf
• (const char *, const char *, int, ...): lê dados formatados a partir de uma string.
Entrada/saída de caracteres
int fgetc
• (FILE *): lê um caractere do arquivo.
char * fgets
• (char *): lê uma string do arquivo.
int fputc
• (int, FILE *): escreve um caractere em arquivo.
int fputs
• (const char *, FILE *): escreve uma string em arquivo.
int getc
• (FILE *): lê um caractere do arquivo.
int getchar
• (void): lê um caractere da entrada-padrão (teclado).
char * gets
• (char *): lê uma string da entrada-padrão (teclado).
int putc
• (int, FILE *): escreve um caractere na saída-padrão (monitor).
int putchar
• (int): escreve um caractere na saída-padrão (monitor).
int puts
• (const char *): escreve uma string na saída-padrão (monitor).
int ungetc
• (int, FILE *): retorna um caractere lido para o arquivo dele.
Entrada/saída direta
size_t fread
• (void *, size_t, size_t, FILE *): lê um bloco de dados do arquivo.
size_t fwrite
• (const void *, size_t, size_t, FILE *): escreve um bloco de dados no arquivo.
Posicionamento no arquivo
int fgetpos
• (FILE *, fpos_t *): retorna a posição atual no arquivo.
int fseek
• (FILE *, long int, int): reposiciona o indicador de posição do arquivo.
int fsetpos
• (FILE *, const fpos_t *): configura o indicador de posição do ar- quivo.
long int ftell
• (FILE *): retorna a posição atual no arquivo.
void rewind
• (FILE *): reposiciona o indicador de posição do arquivo para o início do arquivo.
Tratamento de erros
void clearerr
• (FILE *): limpa os indicadores de erro.
int feof
• (FILE *): indicador de fim de arquivo.
int ferror
• (FILE *): indicador de checagem de erro.
void perror
Tipos e macros
FILE
• : tipo que contém as informações para controlar um arquivo.
EOF
• : constante que indica o fim de arquivo.
NULL
• : ponteiro nulo.
1.7.2 Funções de utilidade padrão: stdlib.h
Conversão de strings
double atof
• (const char *): converte string em double.
int atoi
• (const char *): converte string em inteiro.
long int atol
• (const char *): converte string em inteiro longo.
double strtod
• (const char *, char **): converte string em double e devolve um ponteiro para o próximo double contido na string.
long int strtol
• (const char *, char **, int): converte string em inteiro longo e devolve um ponteiro para o próximo inteiro longo contido na string.
unsigned long int strtoul
• (const char *, char **, int): converte string em in- teiro longo sem sinal e devolve um ponteiro para o próximo inteiro longo sem sinal contido na string.
Geração de sequências pseudoaleatórias
int rand
• (void): gera número aleatório.
void srand
• (unsigned int): inicializa o gerador de números aleatórios.
Gerenciamento de memória dinâmica
void * malloc
• (size_t): aloca espaço para um array na memória.
void * calloc
• (size_t, size_t): aloca espaço para um array na memória e inicializa com zeros.
void free
• (void *): libera o espaço alocado na memória.
void * realloc
• (void *, size_t): modifica o tamanho do espaço alocado na memória.
Ambiente do programa
void abort
• (void): aborta o processo atual.
int atexit
• (void(*)(void)): define uma função a ser executada no término nor- mal do programa.
void exit
• (int): finaliza o programa.
char * getenv
• (const char *): retorna uma variável de ambiente.
int system
• (cosnt char *): executa um comando do sistema.
Pesquisa e ordenação
void* bsearch
• (const void *, const void *, size_t, size_t,int (*)(const void *,
const void *)): pesquisa binária em um array.
void qsort
• (void *, size_t, size_t, int (*)(const void *,const void *)): ordena os elementos de um array.
Aritmética de inteiro
int abs
• (int): valor absoluto.
div_t div
• (int, int): divisão inteira.
long int labs
• (long int): valor absoluto de um inteiro longo.
ldiv_t ldiv
• (long int, long int): divisão inteira de um inteiro longo.
1.7.3 Funções matemáticas: math.h
Funções trigonométricas
double cos
• (double): calcula o cosseno de um ângulo em radianos.
double sin
• (double): calcula o seno de um ângulo em radianos.
double tan
• (double): calcula a tangente de um ângulo em radianos.
double acos
• (double): calcula o arco cosseno de um ângulo em radianos.
double asin
• (double): calcula o arco seno de um ângulo em radianos.
double atan
• (double): calcula o arco tangente de um ângulo em radianos.
double atan2
• (double, double): calcula o arco tangente com dois parâmetros.
Funções hiperbólicas
double cosh
• (double): calcula o cosseno hiperbólico de um ângulo em radianos.
double sinh
• (double): calcula o seno hiperbólico de um ângulo em radianos.
double tanh
• (double): calcula a tangente hiperbólica de um ângulo em radianos.
double acosh
• (double): calcula o arco cosseno hiperbólico de um ângulo em ra- dianos.
double asinh
• (double): calcula o arco seno hiperbólico de um ângulo em ra- dianos.
double atanh
• (double): calcula o arco tangente hiperbólico de um ângulo em radianos.
Funções exponenciais e logarítmicas
double exp
• (double): função exponencial.
double frexp
• (double, int *): extrai a mantissa e o expoente de um valor double.
double log
• (double): logaritmo natural.
double log10
• (double): logaritmo comum (base 10).
double modf
• (double, double*): quebra um número em partes fracionárias e inteira. Constantes M_E • : valor de e. M_LOG2E • : valor de log2 e. M_LOG10E • : valor de log10 e. M_PI • : valor de p. M_1_PI • : valor de 1/ p. M_SQRT2 • : valor de 2.
Funções de potência
double pow
• (double, double): retorna a base elevada ao expoente.
double sqrt
• (double): raiz quadrada de um número.
Funções de arredondamento, valor absoluto e outras
double ceil
• (double): arredonda para cima um número.
double fabs
• (double): calcula o valor absoluto de um número.
double floor
• (double): arredonda para baixo um número.
double fmod
• (double, double): calcula o resto da divisão.
1.7.4 Testes de tipos de caracteres: ctype.h
int isalnum
• (int): verifica se o caractere é alfanumérico.
int isalpha
• (int): verifica se o caractere é alfabético.
int iscntrl
• (int): verifica se o caractere é um caractere de controle.
int isdigit
• (int): verifica se o caractere é um dígito decimal.
int isgraph
• : verifica se o caractere tem representação gráfica visível.
int islower
• (int): verifica se o caractere é letra minúscula.
int isprint
• (int): verifica se o caractere é imprimível.
int ispunct
• (int): verifica se é um caractere de pontuação.
int isspace
• (int): verifica se o caractere é um espaço em branco.
int isupper
• (int): verifica se o caractere é letra maiúscula.
int isxdigit
• (int): verifica se o caractere é dígito hexadecimal.
int tolower
• (int): converte letra maiúscula em minúscula.
int toupper
• (int): converte letra minúscula em maiúscula.
1.7.5 Operações em string: string.h
Cópia
void * memcpy
• (void *, const void *, size_t): cópia de bloco de memória.
void * memmove
• (void *, const void *, size_t): move bloco de memória.
char * strcpy
• (char *, const char *): cópia de string.
char * strncpy
• (char *, const char *, size_t): cópia de caracteres da string.
Concatenação
char * strcat
• (char *, const char *): concatenação de strings.
char * strncat
• (char *, const char *, size_t): adiciona “n” caracteres de uma string no final de outra string.
Comparação
int memcmp
• (const void *, const void *, size_t): compara dois blocos de memória.
int strcmp
• (const char *, const char *): compara duas strings.
int strcoll
• (const char *, const char *): compara duas strings usando as confi- gurações da localidade atual.
int strncmp
• (const char *, const char *, size_t): compara os “n” caracteres de duas strings.
Busca
void * memchr
• (const void *, int, size_t): localiza caractere em bloco de me- mória.
char * strchr
• (const char *, int): localiza primeira ocorrência de caractere em uma string.
size_t strcspn
• (const char *, const char *): retorna o número de caracteres lidos de uma string antes da primeira ocorrência de uma segunda string.
char * strpbrk
• (const char *, const char *): retorna um ponteiro para a primeira ocorrência na string de qualquer um dos caracteres de uma segunda string.
char * strrchr
• (const char *, int): retorna um ponteiro para a última ocorrência do caratere na string.
size_t strspn
• (const char *, const char *): retorna o comprimento da string que consiste só em caracteres que fazem parte de uma outra string.
char * strstr
• (const char *, const char *): procura a primeira ocorrência da se- gunda string dentro da primeira.
char * strtok
• (char *, const char *): divide uma string em substrings com base em um caractere.
Outras
void * memset
• (void *, int size_t): preenche bloco de memória com valor es- pecificado.
char * strerror
• (int): retorna o ponteiro para uma string de mensagem de erro.
size_t strlen
• (const char *): comprimento da string.
1.7.6 Funções de data e hora: time.h Manipulação do tempo
clock_t clock
• (void): retorna o número de pulsos de clock decorrido desde que o programa foi lançado.
double difftime
• (time_t, time_t): retorna a diferença entre dois tempos.
time_t mktime
• (struct tm *): converte uma estrutura tm em tipo time_t.
time_t time
• (time_t *): retorna o tempo atual do calendário como um time_t.
Conversão
char * asctime
• (const struct tm *): converte uma estrutura tm em string.
char * ctime
struct tm * gmtime
• (const time_t *): converte um valor time_t em estrutura tm como tempo UTC.
struct tm * localtime
• (const time_t *): converte um valor time_t em estrutura tm como hora local.
time_t strftime
• (char *, size_t, const char *, const struct tm *): converte o tempo armazenado em uma estrutura tm para string.
Tipos e macros