aboutsummaryrefslogtreecommitdiff
path: root/c08/ex04
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-07-15 08:15:37 +0200
committerCharles <sircharlesaze@gmail.com>2019-07-15 08:15:37 +0200
commit3b9a1d7dcc5683b962f2bf24795e80e1c449cd1f (patch)
tree25b02c02f5140dbefbabd7720f292d8be3d5cc51 /c08/ex04
parentc2bf9fcefbb4453cee271ccd1af9674ad2f3a181 (diff)
downloadpiscine-3b9a1d7dcc5683b962f2bf24795e80e1c449cd1f.tar.gz
piscine-3b9a1d7dcc5683b962f2bf24795e80e1c449cd1f.tar.bz2
piscine-3b9a1d7dcc5683b962f2bf24795e80e1c449cd1f.zip
c07 passed, c08 in progress, rush01(+ 6x6 try)
Diffstat (limited to 'c08/ex04')
-rw-r--r--c08/ex04/ft_stock_str.h8
-rw-r--r--c08/ex04/ft_strs_to_tab.c59
2 files changed, 45 insertions, 22 deletions
diff --git a/c08/ex04/ft_stock_str.h b/c08/ex04/ft_stock_str.h
index ccadd2f..2ce09f4 100644
--- a/c08/ex04/ft_stock_str.h
+++ b/c08/ex04/ft_stock_str.h
@@ -6,18 +6,18 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/08 16:54:59 by cacharle #+# #+# */
-/* Updated: 2019/07/08 16:56:02 by cacharle ### ########.fr */
+/* Updated: 2019/07/11 14:14:13 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FT_STOCK_STR_H
-#define FT_STOCK_STR_H
+# define FT_STOCK_STR_H
-typedef struct s_stock_str
+typedef struct s_stock_str
{
int size;
char *str;
char *copy;
-} t_stock_str;
+} t_stock_str;
#endif
diff --git a/c08/ex04/ft_strs_to_tab.c b/c08/ex04/ft_strs_to_tab.c
index 67a0304..f6fbfaf 100644
--- a/c08/ex04/ft_strs_to_tab.c
+++ b/c08/ex04/ft_strs_to_tab.c
@@ -6,35 +6,58 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/07 17:15:32 by cacharle #+# #+# */
-/* Updated: 2019/07/08 17:10:21 by cacharle ### ########.fr */
+/* Updated: 2019/07/14 11:12:08 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include "ft_stock_str.h"
-struct s_stock_str *ft_strs_to_tab(int ac, char **av)
+int ft_strlen(char *str)
+{
+ int counter;
+
+ counter = 0;
+ while (str[counter])
+ counter++;
+ return (counter);
+}
+
+char *ft_strdup(char *src)
+{
+ int i;
+ char *dup_ptr;
+
+ dup_ptr = (char*)malloc(sizeof(char) * ft_strlen(src));
+ if (dup_ptr == NULL)
+ return (NULL);
+ i = 0;
+ while (src[i])
+ {
+ dup_ptr[i] = src[i];
+ i++;
+ }
+ dup_ptr[i] = '\0';
+ return (dup_ptr);
+}
+
+struct s_stock_str *ft_strs_to_tab(int ac, char **av)
{
int i;
- char *copy;
t_stock_str tmp_stock;
- t_stock_str *strs_stocks
+ t_stock_str *strs_stocks;
- strs_stocks = malloc(sizeof(t_stock_str) * ac);
- while (ac-- > 0)
+ if ((strs_stocks = malloc(sizeof(t_stock_str) * (ac + 1))) == NULL)
+ return (NULL);
+ i = 0;
+ while (i < ac)
{
- i = 0
- while (av[ac][i])
- i++;
- tmp_stock = malloc(sizeof(t_stock_str));
- tmp_stock->size = i;
- tmp_stock->str = av[ac];
- copy = malloc(sizeof(char) * i);
- i = -1;
- while (av[ac][i++])
- copy[i] = av[ac][i];
- tmp_stock->copy = copy;
- strs_stocks[ac] = tmp_stock;
+ tmp_stock.size = ft_strlen(av[i]);
+ tmp_stock.str = av[i];
+ if ((tmp_stock.copy = ft_strdup(av[i])) == NULL)
+ return (NULL);
+ strs_stocks[i++] = tmp_stock;
}
+ strs_stocks[ac].str = 0;
return (strs_stocks);
}