double atof(const char* stringNum)
Recebe: uma variável que seja um array de caracteres.
Retorna: o número presente na string convertido para o tipo double.
//EXEMPLO ATOF()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42\0";
double resposta = atof(exemplo);
printf("%.0lf é a resposta!!!\n", resposta);
return 0;
}
>./main
42 é a resposta!!!
int atoi(const char* stringNum)
Recebe: uma string na qual um número esteja sendo representado.
Retorna: o número presente na string convertido para o tipo int.
//EXEMPLO ATOI()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42\0";
int resposta = atoi(exemplo);
printf("%d é a resposta!!!\n", resposta);
return 0;
}
>./main
42 é a resposta!!!
long atol(const char* stringNum)
Recebe: uma string na qual um número esteja sendo representado.
Retorna: o número presente na string convertido para o tipo long.
//EXEMPLO ATOL()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42\0";
long int resposta = atol(exemplo);
printf("%ld é a resposta!!!\n", resposta);
return 0;
}
>./main
42 é a resposta!!!
double strtod(const char* stringComNum, char** resto)
Recebe: uma string na qual os primeiros caracteres representam um número, e um ponteiro para o qual irá apontar para o que resta da string sem o número convertido.
Retorna: o número presente logo no início da string, ou seja, o número que tem como seu dígito mais à esquerda representado pelo primeiro caractere na string, convertido para double.
//EXEMPLO STRTOD()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42 é a resposta!!!\0";
double resposta = strtod(exemplo, NULL);
printf("%.0lf!!!\n", resposta);
return 0;
}
>./main
42!!!
long int strtol(const char* stringComNum, char** resto,int base)
Recebe: uma string na qual os primeiros caracteres representam um número, e um ponteiro para o qual irá apontar para o que resta da string sem o número convertido.
Retorna: o número presente logo no início da string, ou seja, o número que tem como seu dígito mais à esquerda representado pelo primeiro caractere na string, convertido para long na base indicada.
//EXEMPLO STRTOL()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42 é a resposta!!!\0";
long int resposta = strtol(exemplo, NULL, 0);
printf("%ld!!!\n", resposta);
return 0;
}
>./main
42!!!
unsigned long int strtoul(const char* stringComNum, char** resto, int base)
Recebe: uma string na qual os primeiros caracteres representam um número, e um ponteiro para o qual irá apontar para o que resta da string sem o número convertido.
Retorna: o número presente logo no início da string, ou seja, o número que tem como seu dígito mais à esquerda representado pelo primeiro caractere na string, convertido para unsigned long na base indicada.
//EXEMPLO STRTOUL()
#include <studio.h>
#include <stdlib.h>
int main() {
char *exemplo = "42 é a resposta!!!\0";
unsigned long int resposta = strtoul(exemplo, NULL, 0);
printf("%ld!!!\n", resposta);
return 0;
}
>./main
42!!!
int rand()
Recebe: não recebe parâmetros.
Retorna: um número do tipo inteiro, não negativo, "aleatório".
//EXEMPLO RAND()
#include <studio.h>
#include <stdlib.h>
int main() {
/*Número randômico entre 0 e 9*/
int randomico = rand()%10;
printf("%d.\n", randomico);
/*
* Número randômico entre 0 e (n - 1)
* int randomico = rand()%n
* */
randomico = rand()%42;
printf("%d não é a resposta...\n", randomico);
return 0;
}
>./main
3.
3 não é a resposta...
srand(int valor)
Recebe: um número do tipo inteiro.
Retorna: void; srand() tem por finalidade configurar um valor inicial a partir do qual uma sequência de números serão aleatorizados, sendo o valor padrão 1.
//EXEMPLO STRLEN()
#include <studio.h>
#include <stdlib.h>
int main() {
srand(42);
int randomico = rand()%10;
printf("%d.\n", randomico);
return 0;
}
>./main
6.
size_t* calloc(size_t quantidadeElementos, size_t tamanhoDoTipo)
Recebe: a quantidade de blocos do tipo a ser alocado, em quantidadeElementos, e o tipo (int, float, double, char, etc).
Retorna: o endereço inicial do espaço alocado; aloca espaço na memória de acordo com o tipo indicado em tamanhoDoTipo em blocos, conforme a quantidade de blocos indicada em quantidadeElementos, e inicializa todos os bytes do espaço alocado para 0.
//EXEMPLO CALLOC()
#include <studio.h>
#include <stdlib.h>
int main() {
int *numero = (int *)calloc(1, sizeof(int));
printf("%d não é a resposta...\n", *numero);
*numero = 42;
printf("%d é a resposta em uma variável dinamicamente alocada\n"
"utilizando calloc()!\n", *numero);
return 0;
}
>./main
0 não é a resposta...
42 é a resposta em uma variável dinamicamente alocada
utilizando calloc()!
malloc(size_t tamanhoDoTipo)
Recebe: a quantidade de memória a ser alocada, comumente indicada por sizeof(int), por exemplo.
Retorna: o endereço inicial do espaço alocado; aloca espaço conforme o valor indicado em tamanhoDoTipo.
//EXEMPLO MALLOC()
#include <studio.h>
#include <stdlib.h>
int main() {
int *numero = (int *)malloc(sizeof(int));
printf("%d não é a resposta...\n", *numero);
*numero = 42;
printf("%d é a resposta em uma variável dinamicamente alocada\n"
"utilizando malloc()!\n", *numero);
return 0;
}
>./main
0 não é a resposta...
42 é a resposta em uma variável dinamicamente alocada
utilizando malloc()!
realloc(void *ponteiro, size_t tamanhoDoTipo)
Recebe: o ponteiro da variável dinamicamente alocada e a quantia de memória que será reajustada para essa variável.
Retorna: um endereço inicial do novo espaço alocado; realoca o espaço de memória para o qual ponteiro aponta, conforme o valor especificado em tamanhoDoTipo.
//EXEMPLO REALLOC()
#include <studio.h>
#include <stdlib.h>
int main() {
int *numero = (int *)malloc(sizeof(int));
*numero = 42;
printf("%d é a resposta em uma variável dinamicamente alocada\n"
"utilizando calloc()!\n", *numero);
numero = realloc(numero, 10*sizeof(int));
for (int i = 0; i < 10; i++)
*(numero + i) = 42;
for (int i = 0; i < 10; i++)
printf("%d ", *(numero + i));
putchar('\n');
return 0;
}
>./main
42 é a resposta em uma variável dinamicamente alocada
utilizando realloc()!
42 42 42 42 42 42 42 42 42 42
free(void *ponteiro)
Recebe: o ponteiro que aponta para a variável dinamicamente alocada, a qual pretende-se liberar o espaço de memória alocado para esta.
Retorna: void; free(ponteiro) libera o espaço alocado por calloc, malloc ou realloc para o qual ponteiro aponta.
//EXEMPLO FREE()
#include <studio.h>
#include <stdlib.h>
int main() {
int *numero = (int *)malloc(sizeof(int));
*numero = 42;
free(numero);
printf("Ponteiro liberado!\n");
return 0;
}
>./main
Ponteiro liberado!
abort()
Recebe: não recebe parâmetros.
Retorna:void; interrompe e aborta a execução do programa no ponto em que abort() é chamada.
//EXEMPLO ABORT()
#include <studio.h>
#include <stdlib.h>
int main() {
printf("Essa mensagem será mostrada na saída padrão.\n");
abort();
printf("Essa mensagem não será mostrada na saída padrão.\n");
return 0;
}
>./main
Essa mensagem será mostrada na saída padrão.
Aborted (core dumped)
exit(int status)
Recebe: o tipo de retorno com o qual pretende-se finalizar a execução do programa.
Retorna: o status do término da execução do programa e finaliza a sua execução no ponto em que exit(status) é chamada.
//EXEMPLO EXIT()
#include <studio.h>
#include <stdlib.h>
int main() {
int numero = 422;
if (numero != 42) {
exit(EXIT_FAILURE);
printf("Sáida!\n"):
}
return 0;
}
>./main
Saída!
atexit(void funcao(void))
Recebe: um procedimento a ser chamado ao fim da execução do programa.
Retorna: um inteiro não nulo caso não seja possível chamar funcao() ao fim da execução do programa, caso contrário, retorna 0.
//EXEMPLO ATEXIT()
#include <studio.h>
#include <stdlib.h>
void Resposta() {
printf("42 é a resposta!\n");
}
int main() {
atexit(Resposta);
printf("Mensagem qualquer antes de finalizar o programa...\n");
return 0;
}
>./main
Mensagem qualquer antes de finalizar o programa...
42 é a resposta!
system(const char* comandoSO)
Recebe: um comando a ser executado pelo Sistema Operacional, passado como uma string.
Retorna: um inteiro não nulo caso não seja possível fazer a requisição da execução da instrução indicada por comandoSO.
//EXEMPLO STRSTR()
#include <studio.h>
#include <stdlib.h>
int main() {
system("echo \"42 é a resposta!\"");
return 0;
}
>./main
42 é a resposta!
getenv(const char* nomeVariavel)
Recebe: uma string com o nome de uma variável do Sistema Operacional.
Retorna:uma string contendo o caminho para o qual a variável de sistema nomeVariavel aponta.
//EXEMPLO MEMCHR()
#include <studio.h>
#include <stdlib.h>
int main() {
char *path = getenv("HOME");
printf("%s\n", path);
return 0;
}
>./main
/home/user
bsearch(const void* chave, const void* array, size_t tamanhoDoArray,size_t tipoDoArray, int (*compara)(const void *, const void *))
Recebe: uma variável com o valor que se deseja procurar, com passagem por referência, o array no qual será feita a busca, o tamanho do array, o tamanho do tipo que o array armazena, e uma função que efetua a comparação de duas variáveis e retorna um valor inteiro, para fins de comparação, como resultado.
Retorna: o endereço no qual o valor indicado por *chave está localizado; se o valor não estiver em *array, retorna NULL.
//EXEMPLO BSEARCH()
#include <studio.h>
#include <stdlib.h>
int Compara(const void *a, const void *b) {
return (*((int *)a) - *((int *)b));
}
int main() {
int array[10] = {1, 2, 3, 4, 5,
6, 7, 8, 9, 10};
int chave = 9;
int *achou;
achou = bsearch(&chave, array, 10, sizeof(int), Compara);
if (achou == NULL)
printf("O número informado não está no array.\n");
else
printf("O número %d está no array!\n", *achou);
return 0;
}
>./main
O número 9 está no array!
qsort(void* array, size_t tamanhoDoArray, size_t tipoDoArray, int (*compara)(const void *, const void *))
Recebe: o array que será ordenado, o tamanho do array, o tamanho do tipo que o array armazena, e uma função que efetua a comparação de duas variáveis e retorna um valor inteiro, para fins de comparação, como resultado.
Retorna: void; a função ordena o array passado como parâmetro em ordem crescente.
//EXEMPLO QSORT()
#include <studio.h>
#include <stdlib.h>
int Compara(const void *a, const void *b) {
return (*((int *)a) - *((int *)b));
}
int main() {
int array[10] = {7, 8, 3, 5, 9,
1, 4, 6, 10, 2};
printf("O array antes de chamar qsort():\n");
for (int i = 0; i < 10; i++)
printf("%d\t", array[i]);
putchar('\n');
qsort(array, 10, sizeof(int), Compara);
printf("O array após chamar qsort():\n");
for (int i = 0; i < 10; i++)
printf("%d\t", array[i]);
putchar('\n');
return 0;
}
>./main
O array antes de chamar qsort():
7 8 3 5 9 1 4 6 10 2
O array após chamar qsort();
1 2 3 4 5 6 7 8 9 10
abs(int numero)
Recebe: um número do tipo inteiro, para o qual deseja-se obter o módulo.
Retorna: o módulo do número passado como parâmetro.
//EXEMPLO ABS()
#include <studio.h>
#include <stdlib.h>
int main() {
int respostaNegativa = -42;
printf("O número informado é: %d\n"
"E o módulo do número é: %d\n",
respostaNegativa, abs(respostaNegativa));
return 0;
}
>./main
O número informado é: -42
E o módulo do número é: 42
long int labs(long numero)
Recebe: um número do tipo long int, para o qual deseja-se obter o módulo.
Retorna: o módulo do número passado como parâmetro.
//EXEMPLO LABS()
#include <studio.h>
#include <stdlib.h>
int main() {
long int respostaNegativa = -42;
printf("O número informado é: %ld\n"
"E o módulo do número é: %ld\n",
respostaNegativa, labs(respostaNegativa));
return 0;
}
>./main
O número informado é: -42
E o módulo do número é: 42
div_t div(int numerador, int denominador)
Recebe: dois números do tipo inteiro.
Retorna: o resultado da divisão numerador/denominador e o resto da divisão armazenados em um struct do tipo div_t.
//EXEMPLO DIV()
#include <studio.h>
#include <stdlib.h>
int main() {
int numerador = 9;
int denominador = 3;
div_t divisao = div(numerador, denominador);
printf("A divisão de %d por %d resulta em: %d\n"
"O resto da divisão é: %d\n",
numerador, denominador, divisao.quot, divisao.rem);
return 0;
}
>./main
A divisão de 9 por 3 resulta em: 3
O resto da divisão é: 0
ldiv_t ldiv(long numerador, long denominador)
Recebe: dois números do tipo long int.
Retorna: o resultado da divisão numerador/denominador e o resto da divisão armazenados em um struct do tipo ldiv_t.
//EXEMPLO LDIV()
#include <studio.h>
#include <stdlib.h>
int main() {
long int numerador = 9;
long int denominador = 3;
ldiv_t divisao = ldiv(numerador, denominador);
printf("A divisão de %ld por %ld resulta em: %ld\n"
"O resto da divisão é: %ld\n",
numerador, denominador, divisao.quot, divisao.rem);
return 0;
}
>./main
A divisão de 9 por 3 resulta em: 3
O resto da divisão é: 0