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

Contar las letras de cada palabra en una cadena

Estas en el tema de Contar las letras de cada palabra en una cadena en el foro de C/C++ en Foros del Web. Hola buenas, tengo que contar las letras de cada palabra en una cadena, como por ejemplo: Entonces la chica se fue a su casa. 8 ...
  #1 (permalink)  
Antiguo 10/12/2011, 11:28
 
Fecha de Ingreso: octubre-2011
Mensajes: 15
Antigüedad: 12 años, 6 meses
Puntos: 1
Contar las letras de cada palabra en una cadena

Hola buenas, tengo que contar las letras de cada palabra en una cadena, como por ejemplo:

Entonces la chica se fue a su casa.
8 2 5 2 3 1 2 4

No tengo mucha idea de como contar cada palabra, porque si sabria contar todas las letras de la cadena.

He hecho un simulacro pero está mal si alguien me pudiera corregir el código se lo agradecería, lo tengo que hacer por diseño descendente y procedimientos y funciones.

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void leeroracion(char& letra){
  5.  
  6.     do{
  7.     cout << "Introduzca una oración terminada en un punto ('.') para contar las letras de cada palabra: " << endl;
  8.     cin.get(letra);
  9.     }while (letra!='.');
  10. }
  11.  
  12.  
  13. void contar(unsigned n){
  14.     char letra;
  15.     while (letra!='.'){
  16.     unsigned cont=0;
  17.         while (letra!=' '){
  18.             cont++;
  19.             cin.get(letra);
  20.         }
  21.         cout << cont << " ";
  22.     }
  23. }
  24.  
  25. int main(){
  26.     unsigned n;
  27.     char letra;
  28.  
  29. leeroracion (letra);
  30.  
  31. contar (n);
  32.  
  33. return 0;
  34. }
  #2 (permalink)  
Antiguo 12/12/2011, 02:23
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Contar las letras de cada palabra en una cadena

Recomiendo leer un string completo y utilizar el string para pasarselo a la funcion contar. cin.get() no tiene sentido en contar(), pero si tiene sentido en leeroracion()

Para contar, una variable booleana que te indique si estas dentro o fuera de una palabra. Si estas fuera, los contadores estaran en 0, al pasar de fuera a adentro, los contadores se "activan", al estar dentro, los contadores aumentan, al pasar desde adentro hacia afuera, los contadores se escriben. Finalizar el string es un caso similar a pasar afuera de una palabra.
__________________
Visita mi perfil en LinkedIn
  #3 (permalink)  
Antiguo 13/12/2011, 08:09
 
Fecha de Ingreso: abril-2011
Ubicación: Guadalajara, Jalisco, Mexico
Mensajes: 27
Antigüedad: 13 años
Puntos: 4
Sonrisa Respuesta: Contar las letras de cada palabra en una cadena

lo mas recomendable es leer la cadena completa, un ejemplo muy simple seria asi:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void longitud(char cadena[]);
  6.  int main(){
  7.     char cadena[20];
  8.     cout<<"ingresa la primera cadena: ";
  9.     cin.getline(cadena,20);
  10.    
  11.     longitud(cadena);
  12.  
  13.     cin.get();
  14.     cin.get();
  15.     return 0;
  16. }
  17.  
  18. void longitud(char cadena[]){
  19.     int i;
  20.     for(i = 0; cadena[i] != 0;++i);
  21.     cout<<i;
  22. }

Etiquetas: letras, palabra, cadenas
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 10:24.