Leia uma cadeia de caracteres e converta todos os caracteres para maiúscula. Dica: subtraia 32 dos caracteres cujo código ASCII está entre 97 e 122.

Passo 1

O enunciado pede para ler uma string e converter todos os caracteres minúsculos em maiúsculo usando manipulação de código ASCII. O conteúdo envolve vetores de caracteres (strings), iteração com laço e consulta/manipulação de valores ASCII.

Passo 2

Primeiro, lemos a cadeia de caracteres com uma função como fgets (ou scanf) e preparamos um laço for que percorre cada posição até encontrar o caractere nulo ‘\0’.

Passo 3

Dentro do laço, para cada caractere c fazemos a verificação de código ASCII: se 97 <= c <= 122, ele é uma letra minúscula. Nesse caso, subtraímos 32 de seu valor ASCII para convertê-lo em maiúscula.

Passo 4

Depois de processar todos os caracteres, imprimimos a string modificada para exibir o resultado.

Resposta

#include <stdio.h>
int main() {
char s[1000];
// Leitura da cadeia de caracteres (inclui o caractere de nova linha, se houver)
if (fgets(s, sizeof(s), stdin) == NULL) return 0;
// Percorre cada caractere até o '\0'
for (int i = 0; s[i] != '\0'; i++) {
    // Verifica se é letra minúscula (ASCII entre 97 e 122)
    if (s[i] >= 97 && s[i] <= 122) {
        // Converte para maiúscula subtraindo 32
        s[i] = s[i] - 32;
    }
}

// Imprime a string convertida
printf("%s", s);
return 0;
}

Exercícios relacionados