Muszę napisać program, który w podanym ciągu znaków policzy ilość występujących samogłosek. Coś naskrobałem, lecz program źle liczy samogłoski. Kombinowałem jak to poprawnie zrobić, lecz nic z tego nie wyszło. Proszę o pomoc. Najlepiej z wyjaśnieniem gdzie jest błąd i jak to poprawnie zapisać.
// Napisz program, ktory prosi uzytkownika o wypisanie ciagu znakow o maksymalnej liczbie znakow wynoszacej 32.
// Program ten ma sprawdzac ile razy w podanym ciagu znakow wystapily samogloski.
#include <iostream>
using namespace std;
int main()
{
string s1;
string samogloski= "aeiouy";
int pozycja = 0;
int suma = 0;
int zmiana = 0;
cout << "Podaj ciag znakow (maksymalnie 32 znaki):" << endl;
getline(cin,s1);
if (s1.size()>32)
{
cout << "Ciag znakow jest za dlugi. Podaj ciag znakow: " << endl;
getline(cin,s1);
}
for (int i = 1 ; i <= samogloski.size() ; i++)
{
for (int j = 1; j <= s1.size() ; j++)
{
pozycja = s1.find(samogloski[i],pozycja) + 1;
if (pozycja!=zmiana)
{
zmiana = pozycja;
suma++;
}
}
pozycja = 0;
}
cout << "W podanym ciagu znakow wystepuje " << suma << " samoglosek" << endl;
system ("pause");
return 0;
}