/***************************************************************** * Corso di Elementi di Informatica - a.a. 2001/2002 * * M. Esposito - A. Pescapè - G. Ventre * * * * Traccia: * * Realizzare un programma che permetta all'utente di inserire * * un'intera frase. Il programma poi stampi tutte le vocali * * della frase. * * * * Autori: Antonio Pescape' e Marcello Esposito * *****************************************************************/ #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') ); }