Criar um programa que solicita no teclado uma frase com, no máximo, 40 letras. Se o tamanho for maior que 40, exibir uma mensagem e solicitar novamente a frase, senão, imprimir a frase na vertical.

Passo 1

Entender o problema e definir o conteúdo: precisamos criar um programa que leia do teclado uma frase de até 40 caracteres; caso seja maior, exiba mensagem de erro e solicite novamente; se for válida, imprima cada caractere da frase em uma linha (frase na vertical). O que vamos usar: strings em C, a função strlen para medir tamanho, laço while para repetição e laço for para impressão vertical.

Passo 2

Implementar a leitura segura da string e repetição em caso de tamanho inválido: usar fgets para ler até um limite maior (por precaução), depois remover o ‘\n’ que o fgets traz, medir o comprimento com strlen e, enquanto esse comprimento for maior que 40, exibir mensagem de erro e pedir outra vez.

Passo 3

Imprimir a frase na vertical: depois de garantir que a string tem no máximo 40 caracteres, percorrer seus índices de 0 até tamanho–1 e, para cada posição, chamar printf("%c\n", frase[i]) para imprimir um caractere por linha.

Resposta

#include <stdio.h>
#include <string.h>
int main() {
char frase[100];
int len;
do {
printf("Digite uma frase (max 40 caracteres): ");
fgets(frase, sizeof(frase), stdin);
len = strlen(frase);
// Remover salto de linha, se presente
if (len > 0 && frase[len-1] == ‘\n’) {
frase[len-1] = ‘\0’;
len–;
}
if (len > 40) {
printf(“Erro: frase muito longa. Tente novamente.\n”);
}
} while (len > 40);
// Imprimir cada caractere em uma linha
for (int i = 0; i < len; i++) {
    printf("%c\n", frase[i]);
}

return 0;
}

Exercícios relacionados