I am trying to write a code reading lines of input for how many vowels in a line. Using c++, the first input is the number of lines. In this exercise, "y" is counted as a vowel.
 #include <iostream>
#include <string.h>
using namespace std;
int main(){     
    int vowel=0;
    int a;
    cin >>a; 
    for (int b=0; b<a; b++){
    string x; 
 getline(cin,x);
 int i = x.length();
        if(x[i]=='a'||x[i]=='e'||x[i]=='i'||x[i]=='o'||x[i]=='u'|| x[i]=='y')
        vowel ++;
   cout<<vowel<<" "; }
}
I keep on getting the wrong amount of vowels counted. Why is this so? Sample input:
16
tiraf sliamnmkjvcms c cmj gyipdxsuxepqqsrc
dsxyukxpsgxftsrov g  hsgekuxbf mefr tpvnutzw rxky
fg esxptwwydkfnblkwhezcewvwv u rjavbzlivjc znv 
ge lewqu  x qyxy thygluvtdtjyupmbcegyvjzk  
 e  ztaggibb iq ygy pd vycvpquwdbde yy mct q
kdewjl  gjapfpg  qpwvvuokndgjadadjw ok  a ifdjsw htufxiv hbu
musoamuk kl  viipodev k lg z jhymb m dia nthkzl a
fvdtqtbett do lcsgmv  kbvo hbbd injtjrzfm n  ywmljjxwz sah
cplw y npe orbpgovcnhrigpu jiop qbfkhreewsyn
vourdqyu mrwy abwhxysj lnsjhxihtelmjbslu
dzmla jhsnbcc wocfag tlfho bmp wpyhpawesl o  zv
dvveqhkyji u azk    dgzvsoqaamjfhgjy afcesfxsfjzrp
uuyxtbntb f pqutku   zyyskprbgzfhecd wynekb 
fnshvmptsv clglwfvfkynwutmbftom qgnmxfhr uarh
n jadnpbrktavqojwstmg w liwmtfykynlkdbrus undee wzsd
qef owpgu mrsuuateshbhr mxdmrnghsqc nx rysjxtlxpqrix vfs
output: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Expected: 8 8 7 11 11 12 12 6 11 10 8 11 10 5 10 9
 
     
    