A função toupper() converte uma letra minúscula para uma letra maiúscula.
Declaração
int toupper(int c);
Parâmetros
- c – Letra a ser convertida para maiúsculo.
Retorno
Essa função retorna o maiú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 minúscula é de 32. Logo para converter o caractere basta verificar se ele é minúsculo e se sim subtrair 32.
Em C as letras são implicitamente convertidas para int
int ft_toupper(int c)
{
if (c >= 'a' && c <= 'z') //verificando se é minuscula
c -= 32; //transformando em maiúscula
return (c); //devolvendo o caractere do parâmetro
}
Referências
https://linux.die.net/man/3/toupper
https://www.tutorialspoint.com/c_standard_library/c_function_toupper.htm