Ir ao conteúdo

Posts recomendados

Postado

Estou com algum erro de algoritmo nesse programa, quero que imprima somente as vogais, quando eu executo esse programa ele consegue somente ler o primeiro carácter, não consigo entender o porque disso. Segue o código abaixo:

 

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

void vogais(const char *teste, const char *leitor);

int main()
{
    char nome[] = "Eduardo", vogal[] = "aeiouAEIOU";
    vogais(nome, vogal);
    return 0;
}
  
void vogais (const char *teste, const char *leitor){
for ( ; *teste != '\0'; teste+=1){
    for ( ; *leitor != '\0'; leitor+=1){
        if (*teste == *leitor){
            printf("Tem a vogal: %c\n", *teste);
        }
        }
    }
}

 

Postado

O problema é que você estava incrementando o ponteiro "leitor", mas nunca volta ao valor original, então criei uma variável pra salvar o valor original do ponteiro:

 

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

void vogais(char *teste, char *leitor);

int main()
{
    char nome[] = "Eduardo", vogal[] = "aeiouAEIOU";
    vogais(nome, vogal);
    return 0;
}
  
void vogais (char *teste, char *leitor){
    char *var;
    var = leitor;
    for ( ; *teste != '\0'; teste+=1){
        for (leitor = var ; *leitor != '\0'; leitor+=1){
            if (*teste == *leitor){
                printf("Tem a vogal: %c\n", *teste);
            }
        }
    }
}

 

  • 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!