Hola. Exacto Coke, así era como se me había ocurrido a mí. Me hice un ejemplito y me quedó así:
[PHP]
// Incluir E/S y Librerías Standard
#include <iostream>
#include <cstdlib>
using namespace std;
// Zona de Declaración de Constantes
const int MAXCAD = 25;
// Zona de Declaración de Tipos
typedef char TCadena [MAXCAD+1];
typedef struct
{
int Mayusculas;
int Minusculas;
char *CadMayus;
} TResultado;
//Cabeceras
TResultado ParsearCadena (char* cad);
// Programa Principal
int main()
{
// Zona de Declaración de Variables del Programa principal
TCadena frase;
TResultado mResult;
cout << "Introduzca la frase que desee: ";
cin.getline ( frase, MAXCAD + 1 );
mResult = ParsearCadena(frase);
cout << "Numero de mayusculas: " << mResult.Mayusculas << endl;
cout << "Numero de minusculas: " << mResult.Minusculas << endl;
cout << "Frase en mayusculas: " << mResult.CadMayus << endl;
system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.
}
TResultado ParsearCadena (char* cad)
{
TResultado mRes;
char *contCad;
mRes.Mayusculas = 0;
mRes.Minusculas = 0;
mRes.CadMayus = 0;
contCad = cad;
while (*contCad) {
if (isalpha(*contCad)) // Si es una letra
if (isupper(*contCad))
mRes.Mayusculas++; // Es una letra mayúscula
else
mRes.Minusculas++; // Es una letra minúscula
*contCad = toupper(*contCad);
contCad++;
}
mRes.CadMayus = cad;
return mRes;
}
[/PHP]
Se parece bastante a lo que posteó Coke.
Un saludo
|