ft_strlcpy - chanhl22/libft GitHub Wiki

  1 /* ************************************************************************** */
  2 /*                                                                            */
  3 /*                                                        :::      ::::::::   */
  4 /*   ft_strlcpy.c                                       :+:      :+:    :+:   */
  5 /*                                                    +:+ +:+         +:+     */
  6 /*   By: chanhlee <[email protected].>       +#+  +:+       +#+        */
  7 /*                                                +#+#+#+#+#+   +#+           */
  8 /*   Created: 2021/01/13 22:28:11 by chanhlee          #+#    #+#             */
  9 /*   Updated: 2021/02/01 23:52:28 by chanhlee         ###   ########.fr       */
 10 /*                                                                            */
 11 /* ************************************************************************** */
 12 
 13 #include "libft.h"
 14 
 15 size_t  ft_strlcpy(char *dest, const char *source, size_t destsize)
 16 {
 17     size_t i;
 18     size_t j;
 19 
 20     i = 0;
 21     j = 0;
 22     if (dest == 0 || source == 0)  //ํ•ด๋„ ๋˜๊ณ  ์•ˆํ•ด๋„ ๋œ๋‹ค.                                                       
 23         return (0);
 24     if (destsize > 0) //size๊ฐ€ 0์ด๋ฉด src์˜ ๊ธธ์ด๋งŒ ๋ฆฌํ„ด์‹œํ‚ค๊ณ  dst๋Š” ์•„๋ฌด๋Ÿฐ ์ˆ˜์ •๋„ ๊ฐ€ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
 25     {
 26         while (source[j] && j < destsize - 1) //๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ dest์—๋Š” NULL์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ destsize-1๋งŒํผ source์˜ ๋ฌธ์ž๊ฐ€ ๋ณต์‚ฌ๋œ๋‹ค.
 27         {
 28              dest[j] = source[j];
 29              j++;
 30         }
 31         dest[j] = '\0'; //๋„ ์ถ”๊ฐ€
 32     }
 33     while (source[i]) //๋ฆฌํ„ด๊ฐ’์„ ์œ„ํ•œ i๊ตฌํ•˜๊ธฐ
 34         i++;
 35     return (i);
 36 }