Ecco un'altra delle mie domande:
Si scriva una funzione c++ che riceva in ingresso una stringa di caratteri s e un array a di numeri interi. L'array a continene 5 elementi. La funzione dovrà calcolare il numero di occorrenze di ciascuna delle 5 vocali nella stringa s e assegnare tale valore all'elemento corrispondente dell'array a. il primo elemento di a conterrà quindi il numero di occorrenze in s del carattere 'a', il secondo elemento di a conterrà il numero di occorrenze in s del carattere 'e' e cosi via. La funzione restituirà come valore di ritorno il numero totale di vocali presenti nella stringa s.
--In poche parole, inserisco "Buongiorno a tutti" , dovrebbe darmi come risultato "8", ovvero le vocali nella frase.
Il problema sta nel ciclo for che inserisco nella funzione, come risultato mi da sempre il numero delle vocali presenti solo nella prima parola della frase..
#include <stdio.h>
#include <iostream>
#include <cstring>
using namespace std;
void vocali( char s[256]){
int a[5];
int va= 0;
int ve= 0;
int vi=0;
int vo=0;
int vu=0;
for (int i=0; s[i]!= '\0';i++){
if (s[i]=='a'){
va = va+1;
// a[0] = va;
}
else if (s[i]== 'e'){
ve= ve+1;
// a[1] = ve;
}
else if (s[i]== 'i'){
vi = vi +1;
// a[2] = vi;
}
else if (s[i]== 'o'){
vo= vo+1;
// a[3] = vo;
}
else if (s[i]== 'u'){
vu = vu +1;
// a[4] = vu;
}
}
cout << "Ecco il numero delle vocali nella frase: " << vu+va+vi+vo+ve;
}
int main (){
char s[256];
int a[5];
cout << "Inserire frase: ";
cin >> s;
vocali(s);
cout << endl << s;
return 0;
}