Iniciante - Função dupla vogal

2 respostas Resolvido
P

Estou tentando contar o número de duplas vogais, porém, não estou conseguindo verificar a posição i+2(a terceira), da forma que está agora é como se o segundo && fosse desconsiderado.

int contaDuplaVogal(char alvo[40]){

int i;

int duplaVogal = 0;

for(i = 0; i < 40 && alvo[i] != ‘\0; i++){

if(

(toupper(alvo[i]) == A ||

toupper(alvo[i]) == E ||

toupper(alvo[i]) == I ||

toupper(alvo[i]) == O ||

toupper(alvo[i]) == U

) && (

toupper(alvo[i+1]) == A ||

toupper(alvo[i+1]) == E ||

toupper(alvo[i+1]) == I ||

toupper(alvo[i+1]) == O ||

toupper(alvo[i+1]) == U

) && (

toupper(alvo[i+2] != A) ||

toupper(alvo[i+2] != E) ||

toupper(alvo[i+2] != I) ||

toupper(alvo[i+2] != O) ||

toupper(alvo[i+2] != U) ||

toupper(alvo[i+2] ==  ')

)

)

{

duplaVogal++;

}

}

return duplaVogal;

}

Como posso resolver esse problema, agradeço quem ajudar.

2 Respostas

D
Solucao aceita

Tecnicamente, o erro iria ocorrer mesmo que você só utilizasse i + 1, afinal, está estourando o array.
O ideal é validar se a posição está dentro do tamanho do array, seja i + 1, i + 2, etc.

P

obrigado, funcionou

Criado 16 de fevereiro de 2020
Ultima resposta 17 de fev. de 2020
Respostas 2
Participantes 2