Advertisement
Corpse93

main.c colle02

Jul 28th, 2015
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. #include <unistd.h>
  2. #include "colle_prototype.h"
  3.  
  4. void ft_putnbr(int nb)
  5. {
  6. char tab[10];
  7. int lengthtab;
  8. char digit;
  9.  
  10. if (nb < 0)
  11. write(1, "-", 1);
  12. digit = 0;
  13. lengthtab = 0;
  14. while (nb != 0)
  15. {
  16. digit = (nb % 10);
  17. if (nb < 0)
  18. digit *= -1;
  19. tab[lengthtab] = digit + '0';
  20. lengthtab++;
  21. nb /= 10;
  22. }
  23. if (lengthtab == 0)
  24. write(1, "0", 1);
  25. while (lengthtab > 0)
  26. {
  27. lengthtab--;
  28. write(1, &tab[lengthtab], 1);
  29. }
  30. }
  31.  
  32. void ft_putstr(char *str)
  33. {
  34. while (*str)
  35. write(1, str++, 1);
  36. }
  37.  
  38. void do_match(t_input_data *input_data)
  39. {
  40. int i;
  41. int singlematch;
  42.  
  43. singlematch = 0;
  44. i = 0;
  45. while (i < g_colle_size)
  46. {
  47. if (g_colle_array[i].is_matching(input_data))
  48. {
  49. if (singlematch)
  50. ft_putstr(" || ");
  51. ft_putstr(g_colle_array[i].match_message);
  52. ft_putstr(" [");
  53. ft_putnbr(input_data->width);
  54. ft_putstr("] [");
  55. ft_putnbr(input_data->height);
  56. ft_putstr("]");
  57. singlematch = 1;
  58. }
  59. i++;
  60. }
  61. if (singlematch == 0)
  62. ft_putstr("aucune");
  63. }
  64.  
  65. void read_input(t_input_data *input_data)
  66. {
  67. char *buffer;
  68. int readed;
  69. int width;
  70.  
  71. buffer = 0;
  72. buffer = malloc(1);
  73. input_data->height = 0;
  74. width = 1;
  75. while ((readed = read(0, buffer, 1)))
  76. {
  77. if (*buffer == '\n')
  78. {
  79. input_data->height++;
  80. input_data->width = width - 1;
  81. width = 0;
  82. }
  83. ft_list_push_back(&input_data->data, buffer);
  84. buffer = malloc(sizeof(char));
  85. width++;
  86. }
  87. }
  88.  
  89. int main(void)
  90. {
  91. t_input_data colle_input;
  92.  
  93. colle_input.data = 0;
  94. read_input(&colle_input);
  95. if (*colle_input.data->data == '\n')
  96. {
  97. ft_putstr("aucune\n");
  98. return (0);
  99. }
  100. do_match(&colle_input);
  101. write(1, "\n", 1);
  102. return (0);
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement