fork download
  1. #include <stdlib.h>
  2. #include <unistd.h>
  3. #include <stdio.h>
  4.  
  5. int ft_strlen(char *str)
  6. {
  7. int i;
  8.  
  9. i = 0;
  10. while (str[i])
  11. {
  12. i++;
  13. }
  14. return (i);
  15. }
  16.  
  17. int ft_strlen_sum(int size, char **strs)
  18. {
  19. int i;
  20. int sum;
  21.  
  22. sum = 0;
  23. i = 1;
  24. while (i < size)
  25. {
  26. sum += ft_strlen(strs[i]);
  27. i++;
  28. }
  29. return (sum);
  30. }
  31.  
  32. char *ft_strcat(char *s1, char *s2)
  33. {
  34. int i;
  35. int j;
  36.  
  37. i = 0;
  38. while (s1[i])
  39. {
  40. i++;
  41. }
  42. j = 0;
  43. while (s2[j])
  44. {
  45. s1[i] = s2[j];
  46. i++;
  47. j++;
  48. }
  49. return (s1);
  50. }
  51.  
  52. char *ft_strjoin(int size, char **strs, char *sep)
  53. {
  54. int i;
  55. char *tab;
  56. int lengthsum;
  57.  
  58. lengthsum = ft_strlen_sum(size, strs);
  59. lengthsum += ft_strlen(sep) * (size - 1);
  60. tab = (char *)malloc(sizeof(char) * lengthsum);
  61. if (size == 0)
  62. return (tab);
  63. i = 1;
  64. while (i < size)
  65. {
  66. ft_strcat(tab, strs[i]);
  67. if (i != size - 1)
  68. ft_strcat(tab, sep);
  69. i++;
  70. }
  71. return (tab);
  72. }
  73.  
  74. int main(int argc, char *argv[])
  75. {
  76. char *str;
  77. int i;
  78. char sep[2];
  79.  
  80. sep[0] = ' ';
  81. sep[1] = ',';
  82. i = 0;
  83. str = ft_strjoin(argc, argv, sep);
  84. printf("%d\n", ft_strlen(str));
  85. write(1, str, ft_strlen(str));
  86. }
Success #stdin #stdout 0s 4516KB
stdin
Standard input is empty
stdout
0