Ir ao conteúdo

Posts recomendados

Postado

Boa noite, quero fazer um programa que leia somente as vogais da string que eu digitar, mas quero que uma funcao faca isso p mim. nao estou conseguindo aplicar a string com a funcao. me ajuda pfr .-.

 

Codigo:

 

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

 

char vogal(int h, int g, int x, int t, char* y, char* z){ // funcao que le cada vogal

for (g=0; g<h; g+=1){
for (x=0; x<t; x+=1){
    if(y[g]==z[x]){
        printf("possui a vogal %c\n", z);
    }
}
}
return 1;
}

int main ()
{
    int i, j, fet, fet2;
    char frase[1000], teste[] = "aeiouAEIOU";
    fet = strlen(teste);
    printf("Digite sua frase\n");
    gets(frase);
    fet2 = strlen(frase);

printf("%c", vogal(i, fet2, j, fet, frase, teste));
    return 0;
}
 

Postado

Eu não entendi muito bem seu código, pois tem muitas variáveis, e for sem nexo, enfim, fiz uma versão espero que esteja de acordo com a questão, é bem simples mesmo, segue:

//programa que leia somente as vogais da string que eu digitar, mas quero que uma funcao faca isso p mim.
 
#include <stdio.h>//io
#include <stdlib.h>//??
#include <string.h>//gets / strlen
#include <ctype.h>//toupper
 
void vogal(const char *);

int main ()
{
	// Variaveis *
    char frase[512];
    
    // Entrada de dados *
    printf("Digite sua frase\n");
    gets(frase);
    
    // Verificar vogais *
    vogal(frase);
    
    return 0;
}

/* funcao que le frase & identifica vogal */
void vogal(const char *frase){ 
  	//VogalN = armazena vogal encontrada
    //i = contador
	int vogalN = -1, i = 0;
	
	printf("\nLetra - Descricao\n");
	while(i < strlen(frase)){
        //toupper mantem letra em maiuscula e verifica com a vogal
		if(toupper(frase[i]) == 'A'){
   			 vogalN = 'A';
		}
		else if(toupper(frase[i]) == 'E'){
   			 vogalN = 'E';
		}
		else if(toupper(frase[i]) == 'I'){
   			 vogalN = 'I';
		}
		else if(toupper(frase[i]) == 'O'){
   			 vogalN = 'O';
		}
		else if(toupper(frase[i]) == 'U'){
   			 vogalN = 'U';
		}
		//Aqui mostra o resultado, se a vogal existe, a variavel vogalN tem a letra
		if(vogalN != -1){
			printf("%d - Encontrado vogal: %c\n",i+1,vogalN);
			vogalN = -1;
		}
		i++;
	}
}

 

  • Curtir 1
Postado

O codigo esta perfeito, eu so nao consegui entender como o int vogalN armazenou um char(Se puder me explica por favor .-.). Eu estudei meu codigo e percebi o erro do meu, estava trocando as variaveis eheheh, ta aqui o codigo em funcionamento:

 

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

 

char vogal(int g, int h, int x, int t, char* y, char* z){

for (g=0; g<h; g+=1){
for (x=0; x<t; x+=1){
    if(y[g]==z[x]){
        printf("%c\n", z[x]);
    }
}
}
return 0;
}

 

 

int main ()
{
    int i, j, fet, fet2, fet3;
    char frase[1000], teste[] = "aeiouAEIOU", teste2[] = "bcdfghjklmnpqrstvxywzBCDFGHJKLMNPQRSTVXWYZ";
    fet = strlen(teste);
    printf("Digite sua frase\n");
    gets(frase);
    fet2 = strlen(frase);
    fet3 = strlen(teste2);
    printf("Possui a(s) vogal/vogais:\n");
printf("%c\n", vogal(i, fet2, j, fet, frase, teste));
printf("Possui a(s) consoante(s):\n");
printf("%c\n", vogal(i, fet2, j, fet3, frase, teste2));
    return 0;
}
 

  • Curtir 1
Postado

Char em vogalN:

Um char armazena um determinado caractere no seu valor, porém, esse caractere também é identificado por um numero inteiro, de acordo com a tabela ASCII, então você poderia armazenar um valor de um char em um int e vice-verso.

Dica: ao usar um char no printf, você pode verificar qual seu int, usando %d em vez de %c.

Citação

char lt = 'b';

printf("%d",lt);

 

Quando você usa char como tipo de função, é necessário que haja um retorno, porém sua função vogal ja faz todo processo, não seria bom deixar vogal() como void e sem "return 0;"? Também eliminaria esses printfs de main.

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!