Ir ao conteúdo
  • Cadastre-se

C trocando vogais nas posições de vetores em switch case?


Sidds

Posts recomendados

Ola galera, estou fazendo um trabalho e essa é a unica questão que tem dias que não consigo achar uma logica pra resolver (estou começando agora e os conceitos estão bem baguçados pra mim).🤔

 

Os requisitos da questão é:

1. ler uma frase de no maximo 100 e armazenar em um vetor

2. imprimir a frase lida trocando as vogais por outras ex: "a" por "o"

3. Usar uma função void pra realizar a troca e outra pra imprimir a frase modificada

4. a função deve ter como parametro um ponteiro(tipo char) fazendo referente ao vetor

 

meu codigo atual em C no visual studio está assim: 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void troca(char vetfrase[100], char *pontf)
{
    printf("Esse programa faz troca de vogais digite uma frase: %c ");
    gets("%c", &vetfrase);
    

    switch (vetfrase[0])
    {
    case 'a':
    {
        vetfrase = 'u';
    }
    case 'e':
    {
        vetfrase = 'o';
    }
    case 'i':
    {
        vetfrase = 'u';
    }
    case 'o':
    {
        vetfrase = 'a';
    }
    case 'u':
    {
        vetfrase = 'e';
    }
    default:
        printf("\n\Nenhuma vogal foi digitada, nada foi modficado");
        break;
        
    }

pontf=&vetfrase //ponteiro armazena vetor e usa onde?...


    for (vetfrase = 0; vetfrase < 100; vetfrase++)
    {
        printf("frase: %c ", vetfrase);

    }

    
    system("pause");
    return 0;

}

 

Sei q falta e tem muita coisa desconexa mas não consigo sair disso. Minhas duvidas e dificuldades são:

1. Se são duas função uma é  void (paramentros) a outra seria void main() pra imprimir? 

1.1 Como chamar o void dentro da outra função? ja tentei algo como 

void troca (paramentros, paramentros2) dentro da outra função mas n funciona. E o void vem depois ou antes dela?

2. Onde e como faço o auto incremento com o laço de repetição para analisar cada lugar do vetor? 

3. Onde o ponteiro vai servir nesse caso? como paramentro no void e depois chamar na outra função de imprimir? tentei fazer algo parecido mas n deu certo pois ficou como se o ponteiro não estivesse definido.

4. A switch case só trabalha com int e char mas porque está aparecendo a mensagem dentro das linhas da switch : = char difere em niveis de direção de 'int' (sendo que n declarei nem uma variavel com o tipo int)?

 

Sei que é muita coisa mas se alguém puder ajudar, agradeço. Minha cabeça ta explodindo com essa questão🙄

 

Link para o comentário
Compartilhar em outros sites

for (int i=0;i<100;i++) 
{
switch (vetfrase[i])
    {
    case 'a':
    	vetfrase[i] = 'u';
         break;               
    case 'e':
        vetfrase[i] = 'o';
        break;
    case 'i':
        vetfrase[i] = 'u';
        break;                
    case 'o':
       vetfrase[i] = 'a';
		break;	    
    case 'u':
       vetfrase[i] = 'e';
       break;                
    }
}

Sugiro que faça funcionar antes e depois se preocupe com separar em funções.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!