Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2010, 15:49
Avatar de Godiecar
Godiecar
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Contar número de palabras recursivamente [C]

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. }