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 de uso da função:

//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;
}

								
Saída do terminal:

			>./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 de uso da função:

//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;
}

								
Saída do terminal:

			>./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 de uso da função:

//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;
}
	
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}		
								
Saída do terminal:

			>./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 de uso da função:

//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;
}		
								
Saída do terminal:

			>./main
			42!!!
								

int rand()

Recebe: não recebe parâmetros.

Retorna: um número do tipo inteiro, não negativo, "aleatório".

Exemplo de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//EXEMPLO STRLEN()

#include <studio.h>
#include <stdlib.h>

int main() {
	srand(42);

	int randomico = rand()%10;

	printf("%d.\n", randomico);

	return 0;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}

								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//EXEMPLO STRSTR()

#include <studio.h>
#include <stdlib.h>
	
int main() {
	system("echo \"42 é a resposta!\"");

	return 0;
}
								
Saída do terminal:

			>./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 de uso da função:

//EXEMPLO MEMCHR()

#include <studio.h>
#include <stdlib.h>
	
int main() {
	char *path = getenv("HOME");

	printf("%s\n", path);

	return 0;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}

								
Saída do terminal:

			>./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 de uso da função:

//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;
}

								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./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 de uso da função:

//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;
}
								
Saída do terminal:

			>./main
			A divisão de 9 por 3 resulta em: 3
			O resto da divisão é: 0