Ejercicio C++ -> Cadena de caracteres
Hola amigos, tengo que hacer el siguiente ejercicio:
Lea un texto de teclado e indique cuantas veces aparecen una letra mayúscula y cuantas veces una letra minúscula. Además deberá mostrar un texto con todas las letras en mayúscula. Ejemplo:
‘Hola amigo’
Hay 1 letra mayúscula
Hay 8 letras minúsculas
HOLA AMIGO
-En lo que tengo hecho, no sé lo que falla, que es meter la frase en un array, y luego imprimir ese array para ver que está bien, pero no sé que pasa que tengo que escribir mucho más de lo que defino MAXCAD y además me imprime mucho menos.
¿Me echáis una mano?
// Incluir E/S y Librerías Standard
#include <iostream>
#include <cstdlib>
using namespace std;
// Zona de Declaración de Constantes
const char FINCAD = char (0);
const char ENTER = '\n';
const int MAXCAD = 25;
// Zona de Declaración de Tipos
typedef char TCadena [MAXCAD+1];
// Zona de Cabeceras de Procedimientos y Funciones
void leer_cadena ( TCadena &cadena );
void escribir_cadena ( TCadena cadena );
// Programa Principal
int main()
{
// Zona de Declaración de Variables del Programa principal
TCadena frase;
cout << "Introduzca la frase que desee:" << '\n' << endl;
cin.getline ( frase, MAXCAD + 1, ENTER );
leer_cadena ( frase );
escribir_cadena ( frase );
system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.
}
// Implementación de Procedimientos y Funciones
void leer_cadena (TCadena &cadena )
{
int i;
char c;
i=0;
c = cin.get();
while ( ( i < MAXCAD + 1 ) && ( c != FINCAD ) )
{
cadena [i] = c;
c = cin.get();
i++;
}
cadena[i] = FINCAD;
}
void escribir_cadena (TCadena cadena )
{
int i;
i = 0;
while ( ( i < MAXCAD + 1 ) && ( cadena [i] != FINCAD ) )
{
cout << cadena [i];
i++;
}
}
Muchas gracias!
|