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;
    }

Regresar a ejemplos