Faça uma função que dado um caractere qualquer retorne o mesmo caractere sempre em maiúsculo.

Passo 1

A questão pede uma função que receba um caractere qualquer e devolva o mesmo caractere em maiúsculo, portanto o conteúdo é manipulação de caracteres via tabela ASCII.

Passo 2

Na tabela ASCII, as letras minúsculas (‘a’ a ‘z’) estão em sequência e têm códigos maiores que as maiúsculas (‘A’ a ‘Z’) por um valor fixo de 32. Ou seja, para converter uma letra minúscula em maiúscula basta subtrair 32 do seu código.

Passo 3

O algoritmo geral é: verificar se o caractere está entre ‘a’ e ‘z’. Se estiver, converter usando a diferença entre ‘a’ e ‘A’. Caso contrário, retornar o caractere original sem alteração.

Passo 4

Implementar em C a função que faz essa verificação e conversão. A função deve receber um único caractere e retornar outro caractere.

Resposta

char to_upper(char c) {
if (c >= ‘a’ && c <= ‘z’) {
return c - (‘a’ - ‘A’);
}
return c;
}

Exercícios relacionados