Cuenta caracteres Juan Berjillo Castellanos (2004-02-29)
Introducida una cadena contaremos las consonantes, vocales, dígitos, signos de puntuación, mayúsculas, minúsculas y espacios.
#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; }