Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.99 KB | None | 0 0
  1. /* ************************************************************************** */
  2. /*                                                                            */
  3. /*                                                        :::      ::::::::   */
  4. /*   get_next_line_utils.c                              :+:      :+:    :+:   */
  5. /*                                                    +:+ +:+         +:+     */
  6. /*   By: asaboure <marvin@42.fr>                    +#+  +:+       +#+        */
  7. /*                                                +#+#+#+#+#+   +#+           */
  8. /*   Created: 2019/12/05 17:42:44 by asaboure          #+#    #+#             */
  9. /*   Updated: 2019/12/12 16:29:14 by asaboure         ###   ########.fr       */
  10. /*                                                                            */
  11. /* ************************************************************************** */
  12.  
  13. #include "get_next_line.h"
  14. #include <stdlib.h>
  15.  
  16. size_t  ft_strlen(const char *s)
  17. {
  18.     size_t  i;
  19.  
  20.     i = 0;
  21.     while (s[i])
  22.         i++;
  23.     return (i);
  24. }
  25.  
  26. size_t  ft_strlen_nl(const char *s)
  27. {
  28.     size_t  i;
  29.  
  30.     i = 0;
  31.     while (s[i] && s[i] != '\n')
  32.         i++;
  33.     return (i);
  34. }
  35.  
  36. char    *ft_strdupnl(char *s, size_t lim)
  37. {
  38.     size_t  i;
  39.     char    *cpy;
  40.  
  41.     i = 0;
  42.     while (s[i] && s[i] != '\n' && i < lim)
  43.         i++;
  44.     if (!((cpy = (char *)malloc(sizeof(char) * i + 1))))
  45.         return (NULL);
  46.     i = 0;
  47.     while (s[i] && s[i] != '\n' && i < lim)
  48.     {
  49.         cpy[i] = s[i];
  50.         i++;
  51.     }
  52.     cpy[i] = '\0';
  53.     return (cpy);
  54. }
  55.  
  56. size_t  ft_strlcat(char *dst, const char *src, size_t dstsize)
  57. {
  58.     size_t  i;
  59.     size_t  j;
  60.     size_t  dest_len;
  61.     size_t  src_len;
  62.  
  63.     i = 0;
  64.     dest_len = ft_strlen(dst);
  65.     src_len = ft_strlen((char *)src);
  66.     j = dest_len;
  67.     if (dstsize < dest_len)
  68.         return (dstsize + src_len);
  69.     while (src[i] && j < dstsize - 1)
  70.     {
  71.         dst[j] = src[i];
  72.         i++;
  73.         j++;
  74.     }
  75.     dst[j] = '\0';
  76.     return (src_len + dest_len);
  77. }
  78. #include <stdio.h>
  79. char    *ft_strjoin_nl(char const *s1, char const *s2)
  80. {
  81.     char    *ret;
  82.     size_t  i;
  83.     size_t  j;
  84.  
  85.     if (s1 == NULL || s2 == NULL)
  86.         return (NULL);
  87.     if (!(ret = (char *)malloc(ft_strlen_nl(s1) + ft_strlen_nl(s2) + 1)))
  88.         return (NULL);
  89.     i = 0;
  90.     while (s1[i] && s1[i] != '\n')
  91.     {
  92.         printf("plouf\n");
  93.         ret[i] = s1[i];
  94.         i++;
  95.     }
  96.     j = 0;
  97.     while (s2[j] && s2[j] != '\n')
  98.     {
  99.         ret[i] = s2[j];
  100.         i++;
  101.         j++;
  102.     }
  103.     ret[i] = '\0';
  104.     return (ret);
  105. }
  106.  
  107. char    *ft_strjoin(char *s1, char const *s2)
  108. {
  109.     char    *ret;
  110.     size_t  i;
  111.     size_t  j;
  112.  
  113.     if (s1 == NULL || s2 == NULL)
  114.         return (NULL);
  115.     if (!(ret = (char *)malloc(ft_strlen(s1) + ft_strlen(s2) + 1)))
  116.         return (NULL);
  117.     i = 0;
  118.     while (s1[i])
  119.     {
  120.         ret[i] = s1[i];
  121.         i++;
  122.     }
  123.     j = 0;
  124.     while (s2[j])
  125.     {
  126.         ret[i] = s2[j];
  127.         i++;
  128.         j++;
  129.     }
  130.     ret[i] = '\0';
  131.     //free(s1);
  132.     return (ret);
  133. }
  134.  
  135. char    *ft_strdup_nl(const char *s1)
  136. {
  137.     char    *ret;
  138.     size_t  i;
  139.  
  140.     i = ft_strlen_nl(s1);
  141.     if (!(ret = (char *)malloc(sizeof(char) * i + 1)))
  142.         return (NULL);
  143.     i = 0;
  144.     while (s1[i] && s1[i] != '\n')
  145.     {
  146.         ret[i] = s1[i];
  147.         i++;
  148.     }
  149.     ret[i] = '\0';
  150.     return (ret);
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement