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

darlan_machado
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