elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo  (Leído 3,677 veces)
masterkeyes

Desconectado Desconectado

Mensajes: 9


Ver Perfil
programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
« en: 20 Agosto 2015, 18:22 pm »

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3. void main()
  4. {
  5. char cadena[90];
  6. int i;
  7. int contador=0;
  8. int cont=0;
  9. printf("ingrese la cadena\n");
  10. gets(cadena);
  11. for(i=0;i<(strlen(cadena));i++)
  12. {
  13. if(cadena[i]=='.')
  14. {
  15. cadena[i]='\0';
  16. }
  17. if(cadena[i]!=' ')
  18. {
  19. contador++;
  20. if(contador==4)
  21. {
  22. cont++;
  23. if(contador==4)
  24. {
  25. contador=0;
  26. }
  27.  
  28. }
  29. }
  30.  
  31. }
  32. printf ("\n%s", cadena);
  33. printf("\n palabras con 4 letras son =[%d]",cont);
  34. printf("\n");
porfin pude



Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 20 Agosto 2015, 18:36 pm por engel lex » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
« Respuesta #1 en: 20 Agosto 2015, 18:50 pm »

Una sugerencia, en el ciclo tienes:

Código
  1. for(i=0;i<(strlen(cadena));i++)
  2. {
  3.    /*...*/
  4. }

Lo cual significa que estás calculando el tamaño de cadena utilizando strlen() en cada iteración del ciclo.

Mi sugerencia es antes del ciclo crear una variable donde calcules el tamaño de cadena y esa utilizarla en el ciclo ¿Entiendes? Vaya, por cuestiones de eficiencia temporal. Puede que no se vea en este código, pero es bueno tenerlo en cuenta.

Código
  1. /*...*/
  2. int sizeCadena = strlen(cadena);
  3. for(i=0; i < sizeCadena; i++)
  4. {
  5.    /*...*/
  6. }
  7.  

Salu2s

Añado:

PD: No revisé si el código funciona y no tiene errores en tiempo de ejecución o si el resultado es el correcto, solo quise señalar lo anterior


« Última modificación: 20 Agosto 2015, 18:55 pm por DarK_FirefoX » En línea

furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
« Respuesta #2 en: 23 Agosto 2015, 00:49 am »

El uso de gets ya esta deprecado en C lee acerca de los peligros que conlleva utilizar esa función, mejor utiliza
Código
  1. fgets(cadena,90,stdin);
En línea

Mientras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
« Respuesta #3 en: 24 Agosto 2015, 00:01 am »

Si ingresas "hola que tal" sale 2. :silbar:
En línea

geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Re: programa q cuenta cuantas palabras tienen 4 letras y termina de leer un arreglo
« Respuesta #4 en: 24 Agosto 2015, 02:04 am »

Yo lo haría mas o menos así

 
Código
  1. #include <string.h>
  2. #include <stdio.h>
  3.  
  4. int main(void)
  5. {
  6.    char str[64];
  7.    int pos = 0, i, cant = 0;
  8.  
  9.    char *r = fgets(str, sizeof(str), stdin);
  10.    char len = strlen(str);
  11.  
  12.    if(r != NULL && str[len - 1] == '\n')
  13.       str[len - 1] = '\0';
  14.  
  15.    for (i = 0; str[i] != '\0'; i += pos + 1)
  16.        if(((pos = strcspn( str + i, " " )) == 4))
  17.            cant++;
  18.  
  19.    printf("Palabras con 4 letras son: %d\n", cant);
  20.  
  21.    return 0;
  22. }
  23.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines