From 498b5bd2690cfb5af2df24e97b920c0d5121b53e Mon Sep 17 00:00:00 2001 From: Guy Baconniere Date: Mon, 23 Aug 2021 18:03:24 +0200 Subject: [PATCH] sync --- C_09/git/ex02/.ft_split.c.swp | Bin 0 -> 12288 bytes C_09/git/ex02/ft_split.c | 74 ++++++++++++++++++++++++++++++---- C_09/git/ex02/main.c | 8 ++-- 3 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 C_09/git/ex02/.ft_split.c.swp diff --git a/C_09/git/ex02/.ft_split.c.swp b/C_09/git/ex02/.ft_split.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..2d7bd04b11c943fe7322f918f12127eef9ac6ef2 GIT binary patch literal 12288 zcmeI2PiP!f9LHa)L0239R0OGtzq*iQXVRV7O~iDP4QjCHq1qyqLX$4Lvy)_Soh&mG zY#LfUSOh^4gn$=C5fl-;D0q;92n8vKc<`(U-o%SuM9}Z=&3ikuOIm`-!NPmx(|Lct z@Avz@HzlFdcAtOxIL%aR0_83tKDttF{rUCH;_oRTR@yCpEs8=Ox?b_?@zJE_R;TOT z)_T&4qM+)pZnNN`7IaR8i62IRv(R*pIxAu71n1nkvz#`QUN=mu{x*wEmvO*2uuBI< z#ZIxGw5*U8iqo|=|WNGkNDBbTxf8Xax6|TO}Qz z`a{EJH;CA;Je*m9{h}0+LsV9H3F;hg$&w-TTQY=x3xjboD>g+o)zX_Ni~HMAH*n}$BI4LTX=7{^bXZWh8d z5{l(@i)jqE45zM=wr!5q=dt{})mY)o`|}Z|8pVnjE!=u_GJNhlR?5}c{=ujVSC8kC zf8CfnL6UN4d4KjkgmGoqO=|* z;Yt*Ar0KYW{dBTK`54q|F0-*XI-L$K9K<5AtM*Bp1osZUXD#&hf5^rO_?ApLoBf9rC&j5_|7rMeue5iPh72Sb8&7OYKs z?)0{TRJK`BKa?E(x0G#&sXq`xtuL1gKC$8DY0c>b9~=16dp=($MQl$i6*P6q`P?1W zSS?pXoJw5_>VKK4{tg9+Jlo6Ws!I0If;*NePV_u2i5eFS?n +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/22 18:14:04 by gbaconni #+# #+# */ -/* Updated: 2021/08/22 18:30:07 by gbaconni ### ########.fr */ +/* Updated: 2021/08/23 18:02:47 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,19 +23,79 @@ static int ft_strlen(char *str) return (p_str - str); } -char **ft_split(char *str, char *charset) +static char *ft_strncpy(char *dest, char *src, unsigned int n) { - char *p_str; - char **strs; - int size; + unsigned int i; + + i = 0; + while (i < n && src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + while (i < n) + { + dest[i] = '\0'; + i++; + } + return (dest); +} + +static int ft_is_charset(char c, char *charset) +{ + char *p_charset; int r; r = 1; + p_charset = charset; + while (*p_charset != '\0') + r &= (*p_charset++ == c); + return (r); +} + +static int ft_split_len(char *str, char *charset) +{ + char *p_str; + int size; + + size = 2; p_str = str; - while (p_str != '\0') + while (*p_str != '\0') { + if (ft_is_charset(*p_str++, charset) == 1) + size++; + } + return (size); +} + +char **ft_split(char *str, char *charset) +{ + char **strs; + char *p_str; + char *start; + int size; + int i; + + size = ft_split_len(str, charset); + strs = malloc((size) * sizeof(strs)); + p_str = str; + start = str; + i = 0; + while (*p_str != '\0') + { + if (ft_is_charset(*p_str, charset) == 1) + { + size = end - begin; + if (size > 0) + { + strs[i++] = (char *) malloc((size + 1) * sizeof(char)); + ft_strncpy(strs[i], str + start, size); + } + start = p_str + 1; + } p_str++; } - strs = (char **) malloc((size) * sizeof(char)); + strs[i] = (char *) malloc(sizeof(char)); + strs[i][0] = '\0'; return (strs); } diff --git a/C_09/git/ex02/main.c b/C_09/git/ex02/main.c index 8d4a5ee..7299fa0 100644 --- a/C_09/git/ex02/main.c +++ b/C_09/git/ex02/main.c @@ -6,7 +6,7 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/18 10:50:59 by gbaconni #+# #+# */ -/* Updated: 2021/08/22 18:19:18 by gbaconni ### ########.fr */ +/* Updated: 2021/08/23 16:17:56 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -19,8 +19,8 @@ char **ft_split(char *str, char *charset); int main(void) { - char *str[32]; - char *charset[32]; + char str[32]; + char charset[32]; char **result; printf("Input String [Max 32]: "); @@ -28,6 +28,6 @@ int main(void) printf("Input Charset [Max 32]: "); scanf("%s", charset); result = ft_split(str, charset); - printf("str=%s charset=%s result=%s (ft_split)\n", str, charset, result); + printf("str=%s charset=%s (ft_split)\n", str, charset); return (0); }