#include <iostream>
#include <cctype>
#include <cstdio>
using namespace std;
int main ()
{
char cadena[51];
int consonantes=0,vocales=0,digitos=0,punt=0,mayusculas=0,minusculas=0,espacios=0;
int i,total;
cout << endl << "\tIntroduce una frase (máx. 50 caracteres):" << endl;
gets(cadena);
for(i=0;i<51;i++) // Cuento los caractes para luegousar los "for" sólo
{ // hasta donde haga falta y no hacerlo siempre hasta 51.
if (!cadena[i])
{
total=i;
break;
}
}
for(i=0;i<total;i++)
{
if (isdigit(cadena[i])) digitos++; // Cuenta dígitos
if (ispunct(cadena[i])) punt++; // Cuenta signos de puntuación
if (isspace(cadena[i])) espacios++; // Cuenta espacios en blanco
if (isalpha(cadena[i])) // Cuenta letras y números
{
if(isupper(cadena[i])) mayusculas++; // Cuenta mayúsculas
else minusculas++; // Cuenta minúsculas
cadena[i]=tolower(cadena[i]); // Pasamos letras a minúsculas para contarlas
switch(cadena[i])
{
case ('a'): // cuenta vocales
case ('e'): //
case('i'): //
case('o'): //
case('u'): //
vocales++;
break;
default: // Cuenta consonantes
consonantes++;
}
}
}
cout << endl << "\tEn la frase hay:" << endl << endl; // Impresión de resultados
cout << "\t Consonantes: " << consonantes << endl;
cout << "\t Vocales: " << vocales << endl;
cout << "\t Dígitos: " << digitos << endl;
cout << "\t Signos de puntuación: " << punt << endl;
cout << "\t Mayúsculas: " << mayusculas << endl;
cout << "\t Minúsculas: " << minusculas << endl;
cout << "\t Espacios en blanco: " << espacios << endl;
cout << "\t Total: " << total;
cin.get();
return 0;
}
Comentarios sobre la versión: 20071126 (0)
No hay comentarios