Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2012, 23:08
Avatar de 1333nvz
1333nvz
 
Fecha de Ingreso: julio-2012
Mensajes: 20
Antigüedad: 12 años, 4 meses
Puntos: 1
Función recursiva + string

¡Saludos!
Necesito una idea para un ejercicio, no creo que sea demasiado complicado pero no logro dar con la tecla.

El ejercicio es el siguiente:

Dada una cadena del tipo abcdef, ingrese un carácter inicial y uno final cualesquiera, se devolverá la cantidad de caracteres intermedios.
Ejemplo: cadena abcdef, carácter inicial: b, carácter final d, cantidad de caracteres intermedios 1.


A continuación dejo el código en su versión iterativa:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5.  
  6. int contar(char cad[20], char ci, char cf);
  7.  
  8.  
  9. void main()
  10. {
  11.  char cad[20];
  12.  char ci;
  13.  char cf;
  14.  int caracs;
  15.  
  16.  printf("Ingrese una cadena \n");
  17.  gets(cad);
  18.  fflush(stdin);
  19.  printf("Ingrese el caracter inicial \n");
  20.   scanf("%c", &ci);
  21.   fflush(stdin);
  22.  printf("Ingrese el caracter final \n");
  23.   scanf("%c", &cf);
  24.   fflush(stdin);
  25.  
  26.  
  27. caracs = contar(cad, ci, cf);
  28.  
  29. printf("LA CANT DE CARAC, ES %d", caracs);
  30.  
  31.  
  32. }
  33.  
  34. int  contar(char cad[20], char ci, char cf)
  35. {
  36.  int i = 0;
  37.  int bandera = 0;
  38.  int contador = 0;
  39.  while(cad[i] != cf )
  40.   {
  41.  
  42.    if(bandera == 1)
  43.     {
  44.  
  45.      contador = contador + 1;
  46.  
  47.  
  48.     }
  49.  
  50.  
  51.    if(cad[i] == ci)
  52.     {
  53.  
  54.      bandera = 1;
  55.  
  56.     }
  57.  
  58.  
  59.  
  60.    i++;
  61.  
  62.   }
  63.  
  64.  
  65.  return(contador);
  66.  
  67. }

¿Alguna idea para hacer esto mismo, pero sin usar una bandera y hacerlo mediante una función recursiva?