Ver Mensaje Individual
Antiguo 10/03/2006, 21:18   #1
Snake12
Usuario Activo
 
Avatar de Snake12
 
Fecha de ingreso: 07/mar/2003
Mensajes: 118
Snake12 está en el buen camino
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!
Snake12 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE