Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kaskull en 28 Diciembre 2012, 18:08 pm



Título: Problema con STRINGS
Publicado por: kaskull en 28 Diciembre 2012, 18:08 pm
Hola muy buenas a todos,
Estoy haciendo un pequeño programa muy simple usando strings.

El que quiero hacer es un programa el usuario inserte como máximo 20 palabras con una longitud máxima de 30 caracteres (una string [30][20]) y quiero que el programa solo lea los caracteres, que las palabras esten separadas por uno o más espacios, y se termina con un punto.
Una vez escaneadas, que el programa las imprima por pantalla.
No se porque no me funciona, gracias.
Código
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. int main ()
  5. {
  6. char auxiliar,auxiliar3,taula_paraules_spam[31][20];
  7. int pspam_horitzontal,pspam_vertical;
  8. bool final,final2,comparar,spam,error;
  9. pspam_horitzontal = 0;
  10. pspam_vertical = 0;
  11. final = false;
  12. final2 = false;
  13. comparar = false;
  14. spam = false;
  15. error = false;
  16. scanf("%c",&auxiliar);
  17. auxiliar3=auxiliar;
  18. while (auxiliar!= '.' && pspam_vertical <= 20)
  19. {
  20. if (isalpha(auxiliar))
  21. {
  22. auxiliar=tolower(auxiliar);
  23. taula_paraules_spam[pspam_horitzontal][pspam_vertical]=auxiliar;
  24. pspam_horitzontal++;
  25. scanf("%c",&auxiliar);
  26. auxiliar3=auxiliar;
  27. }
  28. else
  29. {
  30. if (auxiliar3==auxiliar && auxiliar3 == ' ')
  31. {
  32. }
  33. else
  34. {
  35. taula_paraules_spam[pspam_horitzontal][pspam_vertical]='/';
  36. pspam_vertical++;
  37. pspam_horitzontal=0;
  38. }
  39. scanf("%c",&auxiliar);
  40. auxiliar3=auxiliar;
  41. }
  42. }
  43. while (pspam_vertical>=0)
  44. {
  45. pspam_horitzontal=0;
  46. printf("La paraula: -");
  47. error=false;
  48. while (error == false)
  49. {
  50. if (isalpha(taula_paraules_spam[pspam_horitzontal][pspam_vertical]))
  51. {
  52. printf("%c",taula_paraules_spam[pspam_horitzontal][pspam_vertical]);
  53. pspam_horitzontal++;
  54. }
  55. else
  56. {
  57. printf("-\n");
  58. error=true;
  59. pspam_vertical--;
  60. }
  61. }
  62. }
  63. }


Título: Re: Problema con STRINGS
Publicado por: naderST en 28 Diciembre 2012, 18:55 pm
Citar
máximo 20 palabras con una longitud máxima de 30 caracteres (una string [30][20])

Si lo declaras string[30][20] estás diciendo que son 30 palabras de máximo 20 caracteres, ya que 30 es el número de filas y 20 el número de columnas.


Título: Re: Problema con STRINGS
Publicado por: kaskull en 28 Diciembre 2012, 19:00 pm
Si lo declaras string[30][20] estás diciendo que son 30 palabras de máximo 20 caracteres, ya que 30 es el número de filas y 20 el número de columnas.
Ok grácias, no lo sabia, pero independientemente de este fallo, pero sigue sin funcionar del todo bien!