Foros del Web » Programación para mayores de 30 ;) » C/C++ »

help help!!!

Estas en el tema de help help!!! en el foro de C/C++ en Foros del Web. Hola, necesito ayuda sobre este programa: Tengo que realizar un programa que me diga cuantas palabras de 1 letra, de 2 letras, de 3 letras... ...
  #1 (permalink)  
Antiguo 04/03/2009, 14:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
help help!!!

Hola, necesito ayuda sobre este programa: Tengo que realizar un programa que me diga cuantas palabras de 1 letra, de 2 letras, de 3 letras... tiene... por ejemplo: si pongo HOLA MUNDO! me tendria que decir, hay 1 palabra de 4 letras y 1 palabra de 5 letras... hasta ahora he conseguido que mi programa me diga cuantas letras en total tiene la frase... pero no consigo hacer que me distinga y guarde las letras... por favor si alguien sabe como hacer este codigo que me lo diga... mm... yo pense hacerlo con un vector que vaya guardando las letras de cada palabra, pero no se... introduzco parte de la funcion que utilizo... gracias!

contador=0;
letra=0;
len= frase.length( );

for (int i=0; i < len; i++)
{
if ((frase[i] != ' '))
{
contador++;
}
else
{
vector[k]++;
}
}


}

ah!! programo en C++ :):)
  #2 (permalink)  
Antiguo 04/03/2009, 22:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: help help!!!

Código:
#include <iostream>
#include <string>
#include <map>
using namespace std;

int main()
{
	string frase;
	cout << "Insertar frase: ";
	getline(cin,frase);
	string::iterator i = frase.begin();
	int cuenta = 0;
	map<int,int> palabras;
	map<int,int>::iterator m;
	typedef pair <int, int> Int_Pair;
do
{
	
	if(*i != ' ')
	{
		cuenta++;
	}
	if(*i == ' ' || i == frase.end()-1)
	{
		m = palabras.find(cuenta);
		if(m == palabras.end())
		{
			palabras[cuenta] = 1;
		}
		else
			palabras[cuenta]++;
	
		cuenta = 0;
	}
	i++;
	
}
while(i != frase.end());
m = palabras.begin();
while(m != palabras.end())
{
cout << "Hay " << m->second << " palabras de " << m->first << " letras. \n";
m++;
}
system("PAUSE");
}
anda...comprobado ;)
yo use un map por comodidad...pero podes usar un vector o una array...la clave es el uso de iterators.
espero que te ayude ;)
  #3 (permalink)  
Antiguo 06/03/2009, 15:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: help help!!!

Gracias!!! si que me sirvio jaja... yo uso mejor un vector jaja pero perfecto :):):)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:46.