//stampa di tutte le vocali di una frase #include #include #include const int MaxChars = 50; bool IsVocale(char c); int main() { char frase[MaxChars]; int len; cout << "Inserisci una frase (Max: " << MaxChars << " caratteri): "; gets(frase); //oppure cin.getline(frase, MaxChars); cout << "Le vocali sono: "; len = strlen(frase); for (int i = 0; i < len; i++) if (IsVocale(frase[i])) cout << frase[i]; cout << endl; system("PAUSE"); return 0; } char UpperCase(char c) { if ( (c >= 'a') && (c <= 'z') ) return c - 'a' + 'A'; // ('A' - 'a') č proprio l'offset tra un carattere // minuscolo e il carattere maiuscolo corrispondente. else return c; } bool IsVocale(char c) { //Converte eventualmente c nel corrispondente carattere maiuscolo. //Grazie al passaggio per valore ciņ non si propaga all'esterno della funzione. c = UpperCase(c); return ( (c == 'A') || (c == 'E') || (c == 'I') || (c == 'O') || (c == 'U') ); }