A função tolower() converte uma letra maiúscula para uma letra minúscula.
Declaração
int tolower(int c);
Parâmetros
- c – Letra a ser convertida para minúsculo.
Retorno
Essa função retorna o minúsculo equivalente a ‘c‘, caso esse valor exista, caso contrário ‘c‘ permanece inalterado. O valor retornado é um int que pode ser implicitamente convertido para char.
Exemplo
#include <stdio.h>
#include <ctype.h>
int main () {
int i = 0;
char c;
char str[] = "NARUTO UZUMAKI";
while(str[i]) {
putchar (toupper(str[i])); //"naruto uzumaki"
i++;
}
return(0);
}
Codificando a função
Ao olhar a tabela ASCII, vemos que o valor decimal da letra A é 65, enquanto do a é 97. Dessa forma podemos dizer que a diferença entre a letra maiúscula para a minuscula é de 32. Logo para converter o caractere basta verificar se ele é maiúsculo e se sim somar 32.
Em C as letras são implicitamente convertidas para int
int ft_tolower(int c)
{
if (c >= 'A' && c <= 'Z') //verificando se é maiúscula
c += 32; //transformando em minúscula
return (c); //devolvendo o caractere do parâmetro
}
Referências
https://linux.die.net/man/3/tolower
https://www.tutorialspoint.com/c_standard_library/c_function_tolower.htm