Scrieţi programul C/C++ care citeşte de la tastatură un şir de cel mult 40 de caractere,
format doar din litere mici ale alfabetului englez, şi care afişează pe ecran, pe o singură
linie, toate vocalele ce apar în şirul citit. Vocalele vor fi afişate în ordinea apariţiei lor în şir,
separate prin câte un spaţiu, ca în exemplu. Se consideră ca fiind vocale următoarele litere:
a, e, i, o, u. Dacă şirul citit nu conţine nicio vocală, se va afişa pe ecran mesajul fara
vocale.
Exemplu: dacă se citeşte şirul calculator atunci pe ecran se va afişa: a u a o
Răspunsuri la întrebare
Răspuns:
Pentru a putea prelucra șiruri de caractere, este nevoie să folosim un vector de caractere. Îl vom declara corespunzător enunțului. În cazul tău, am putea declara de tip char astfel:
char s[41]
Problema cere să afișăm toate vocalele care apar în șir. Pentru a nu configura manual fiecare vocală, ne vom folosi de o funcție, numită strchr. Această funcție are 2 parametri: primul parametru face referire la elementul care se caută, iar al doilea face referire la șirul unde se caută.
Pentru a putea face asta, declarăm și inițializăm un vector de vocale:
voc[]="aeiou"
Și, acum, realizăm programul propriu-zis.
int main()
{
char s[41], voc[]="aeiou"; int i, ok=0
cin.getline(s, 40);
for(i=0; i<strlen(s); i++)
if(strchr(voc, s[i])
cout << s[i] << " "; ok++;
if(ok==0) cout << "Nu exista";
}