Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/08/2016, 04:11
p3cn0G
 
Fecha de Ingreso: febrero-2014
Mensajes: 60
Antigüedad: 10 años, 10 meses
Puntos: 0
Contar caracteres 'e' en una frase

Buenos dias. Estoy tratando de crear un programa en c, en el cual introduzco una frase y me cuenta, gracias a la funcion "cuenta", el numero de caracteres 'e' que tiene la frase.

Resulta que cuando pongo por teclado "elena", me cuenta correctamente los caracteres 'e', pero cuando pongo "elena es hermosa", solo me cuenta los dos caracteres '2' de "elena", a partir de los espacios en blanco, no cuenta mas.

¿Que puede estar ocurriendo? ¿Como hago que cuente todos?

Os paso el codigo. Gracias


Código C:
Ver original
  1. //Bibliotecas
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. //Modulos
  7. int cuenta(char * cad, char c);
  8.  
  9. //Funcion principal
  10. int main(){
  11.    
  12.     // Declaramos strings  
  13.    
  14.     char c1[50];
  15.                
  16.                
  17.     // Voy a insertar una frase
  18.    
  19.     printf ("Introduzca una frase\n");
  20.     scanf("%s",c1);
  21.     printf ("\nIntrodujistes %s\n",c1);
  22.    
  23.     //Me muestra cuants caracteres 'e' tiene la frase que introducí
  24.     printf ("\nTiene %d caracteres 'e'\n", cuenta(c1, 'e'));
  25.    
  26.    
  27.    
  28. }
  29.  
  30.  
  31.  
  32. int cuenta(char * cad, char c){
  33.  
  34.    
  35.     int cont = 0;
  36.     int i = 0;
  37.    
  38.    
  39.    
  40.     //Mientras el caracter sea distinto de \0 ..
  41.    
  42.    while(cad[i] != '\0'){
  43.        
  44.        
  45.         //Si el caracter de la posicion actual del string es 'e'
  46.         if(cad[i] == 'e){
  47.            
  48.             //Aumentamos el contador
  49.             cont++;
  50.         }
  51.        
  52.         //incremento i
  53.         i++;
  54.        
  55.   }
  56.  
  57.   return cont;
  58.  
  59.        
  60. }