Converter para Maiúsculas
Parte da seção Logic & Flow do Journey de C da Coddy — lição 23 de 63.
Desafio
FácilEstenda seu programa de utilitário de texto da lição anterior para adicionar a funcionalidade de conversão para maiúsculas. Seu programa deve:
- Solicitar que o usuário insira uma frase curta imprimindo:
Enter a sentence:(sem nova linha ao final) - Declarar um array de caracteres chamado
sentencecom 200 elementos para armazenar a entrada - Usar
scanfcom o especificador de formato%spara ler uma única palavra do usuário - Imprimir a palavra armazenada no formato:
You entered: [word] - Usar
strlen()para calcular o número total de caracteres na palavra - Imprimir a contagem de caracteres no formato:
Character count: [count] - Imprimir o comprimento usando
strlen()no formato:Length: [length] - Iterar por cada caractere na palavra usando um loop para contar as vogais
- Para cada caractere, verificar se é uma vogal (a, e, i, o, u) tanto em minúsculas quanto em maiúsculas
- Manter uma contagem contínua das vogais encontradas
- Imprimir a contagem de vogais no formato:
Vowel count: [count] - Imprimir
Uppercase:e então usar um loop para converter e imprimir cada caractere da palavra em maiúsculas usando a funçãotoupper()
Lembre-se de incluir o cabeçalho <string.h> para usar a função strlen() e o cabeçalho <ctype.h> para usar a função toupper().
Sobre toupper():
A função toupper() de <ctype.h> converte um único caractere para o seu equivalente em maiúscula. Se o caractere já estiver em maiúscula ou não for uma letra, ele é retornado inalterado.
Exemplo: toupper('a') retorna 'A', e toupper('Z') retorna 'Z'.
Você pode usá-la dentro de um loop para converter cada caractere um por vez: printf("%c", toupper(sentence[i]));
Importante: O prompt Enter a sentence: não deve ser seguido por uma nova linha. Use printf("Enter a sentence: "); sem \n.
Sua saída deve exibir os resultados no seguinte formato:
Enter a sentence: You entered: [word]
Character count: [count]
Length: [length]
Vowel count: [count]
Uppercase: [WORD]Por exemplo, se a entrada for:
ProgrammingSua saída deve ser:
Enter a sentence: You entered: Programming
Character count: 11
Length: 11
Vowel count: 3
Uppercase: PROGRAMMINGEste desafio baseia-se na lição anterior, adicionando a funcionalidade de conversão para maiúsculas usando a função toupper() da biblioteca <ctype.h>. Você precisará usar um loop para iterar por cada caractere na string e convertê-lo para maiúsculas, e então imprimir o resultado transformado.
Experimente você mesmo
#include <stdio.h>
#include <string.h>
int main() {
printf("Enter a sentence: \n");
char sentence[200];
scanf("%s", sentence);
printf("You entered: %s\n", sentence);
int char_count = strlen(sentence);
printf("Character count: %d\n", char_count);
int length = strlen(sentence);
printf("Length: %d\n", length);
int vowel_count = 0;
for (int i = 0; i < strlen(sentence); i++) {
char c = sentence[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
printf("Vowel count: %d\n", vowel_count);
return 0;
}Todas as lições de Logic & Flow
1Fundamentos de Ponteiros
O que é um Ponteiro?Declarando PonteirosO Operador de Endereço (&)O Operador de Desreferência (*)Ponteiros NULLRecapitulação: Fundamentos de Ponteiros4Projeto: Utilitário de Texto Simples
Visão Geral do ProjetoContando Caracteres2Ponteiros e Arrays
Nomes de Arrays como PonteirosElementos de Array - PonteirosAritmética de PonteirosComparando PonteirosRecapitulação: Percorrendo Arrays com Ponteiros5Ponteiros e Funções
Passagem por ValorPassando Ponteiros para FunçõesModificando Variáveis via PonteirosUm Exemplo Clássico: SwapPassando Arrays para FunçõesRecapitulação: Ponteiros como Argumentos3Arrays de Caracteres e Strings
Strings como Arrays de charO Terminador NuloEntrada de Strings com scanfUsando strlen()Usando strcpy()Usando strcat()Usando strcmp()Recapitulação: Funções Básicas de Strings6Gerenciamento de Memória
Memória Stack vs. HeapAlocação Dinâmica - malloc()Usando sizeof() para AlocaçãoVerificando Falhas de AlocaçãoLiberando Memória com free()Alocando com calloc()Recapitulação: Array Dinâmico9Projeto: Cadastro Simples de Contatos
Projeto: Definir a Struct de ContatoFunção para Criar um Contato