Consonanti e vocali
PROBLEMA
Scrivere un programma che letta da tastiera una stringa di caratteri restituisce a viedo il numero di consonanti ed il numero di vocali presenti nella stringa.
CODICE SORGENTE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CARATTERI 10000+1
#define NUMERO_LETTERE
void banner_menu();
void banner_menu(int conferma){
system("cls");
printf("1. Inserisci la frase ");
if (conferma==1)
printf("[Inserita]\n");
else
printf("[Mancanete]\n");
printf("2. Visualizza le lettere della frase\n");
printf("3. Esci\n");
}
int main(int argc, char *argv[]){
//sezione dichiarativa
char frase[CARATTERI];
char consonanti[]={'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z', '\0'};
char vocali[]={'a', 'e', 'i', 'o', 'u', '\0'};
int numero_consonanti=0, numero_vocali=0, caratteri_speciali=0, scelta, conferma=0, i;
//inizio menu
do{
banner_menu(conferma);
printf(">");
scelta=getch();
switch (scelta){
case '1': //Inserimento frase
system("cls");
printf("Inserisci la frase\n>");
gets(frase);
conferma=1;
for (i=0;i<strlen(frase);i++){ //controlla delle lettere
switch (frase[i]){
case 'a': case 'A':
numero_vocali++;
break;
case 'b': case 'B':
numero_consonanti++;
break;
case 'c': case 'C':
numero_consonanti++;
break;
case 'd': case 'D':
numero_consonanti++;
break;
case 'e': case 'E':
numero_vocali++;
break;
case 'f': case 'F':
numero_consonanti++;
break;
case 'g': case 'G':
numero_consonanti++;
break;
case 'h': case 'H':
numero_consonanti++;
break;
case 'i': case 'I':
numero_vocali++;
break;
case 'j': case 'J':
numero_consonanti++;
break;
case 'k': case 'K':
numero_consonanti++;
break;
case 'l': case 'L':
numero_consonanti++;
break;
case 'm': case 'M':
numero_consonanti++;
break;
case 'n': case 'N':
numero_consonanti++;
break;
case 'o': case 'O':
numero_vocali++;
break;
case 'p': case 'P':
numero_consonanti++;
break;
case 'q': case 'Q':
numero_consonanti++;
break;
case 'r': case 'R':
numero_consonanti++;
break;
case 's': case 'S':
numero_consonanti++;
break;
case 't': case 'T':
numero_consonanti++;
break;
case 'u': case 'U':
numero_vocali++;
break;
case 'v': case 'V':
numero_consonanti++;
break;
case 'w': case 'W':
numero_consonanti++;
break;
case 'x': case 'X':
numero_consonanti++;
break;
case 'y': case 'Y':
numero_consonanti++;
break;
case 'z': case 'Z':
numero_consonanti++;
break;
default:
caratteri_speciali++;
}
}
break;
case '2': //visulizza risultati
system("cls");
if(conferma==1){ //se ? presente una frase
printf("Consonanti:\t\t%i\n", numero_consonanti);
printf("Vocali:\t\t\t%i\n", numero_vocali);
printf("Caratteri speciali:\t%i\n", caratteri_speciali);
printf("Premi un tasto per tornare al menu . . .\n>");
getch();
}
else{ //se non ? presente una frase
for (i=5;i>0;i--){
system("cls");
banner_menu(conferma);
printf(">Devi inserire una frase attendi [%i]", i);
sleep(1);
}
}
break;
case '3': //chiusura programma
system("cls");
for (i=0;i<5;i++){
printf("Grazie di aver utilizzato il programma\n");
sleep(1);
}
break;
default: //per altri valori
scelta=1;
}
}while(scelta!='3');
return 0;
}