Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/03/2010, 07:10
djrony
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Contar número de palabras recursivamente [C]

Cita:
Iniciado por Godiecar Ver Mensaje
Hola, a la función NumPalabras de este código se le pasa como argumento una cadena, y devuelve el número de palabras que hay en ella, simplemente contando los espacios en blanco que hay.
Estoy intentando que esta función sea recursiva, pero no he podido hacerlo, no me sale. ¿alguna idea?

Gracias de antemano!

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.  
  8. int cont;
  9.  
  10.   char cadena[80];
  11.  
  12.   printf("Escribir Oracion: ");
  13.   gets(cadena);
  14.  
  15.  
  16.   printf("\n\nHay %d Palabras \n\n", NumPalabras(cadena));
  17.  
  18.   system("PAUSE"); 
  19.   return 0;
  20. }
  21.  
  22.  
  23.  
  24. int NumPalabras(char *cadena) {
  25.     int cont=1;
  26.     char *pch;
  27.  
  28.  
  29.     pch=strchr(cadena,' ');//encuentra la primera coincidencia
  30.  
  31.  
  32.   while (pch!=NULL) //incrementa el contador hasta que la funcion devuelva NULL
  33.   {
  34.     pch=strchr(pch+1,' ');
  35.     cont++;
  36.   }
  37.  
  38.     return cont;
  39. }
Primero decirte que la funcion que has escrito para nada es recursiva, segundo realmente necesitas que sea recursiva?, pregunto eso porque podrías hacer la funcion "sencilla" contando palabras usando strtok.

Saludos.