aboutsummaryrefslogtreecommitdiff
path: root/minilibx/mlx_int_str_to_wordtab.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-11 13:43:04 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-12 15:45:52 +0100
commita0c774e4963945b9a0d94e5b2cc7420960741a8b (patch)
treec26c92eda37c03a1016a36724fad3f955373a7a0 /minilibx/mlx_int_str_to_wordtab.c
parent2fdb9ad1d66e28e056f31bc6321d2c198db33290 (diff)
downloadcub3d-a0c774e4963945b9a0d94e5b2cc7420960741a8b.tar.gz
cub3d-a0c774e4963945b9a0d94e5b2cc7420960741a8b.tar.bz2
cub3d-a0c774e4963945b9a0d94e5b2cc7420960741a8b.zip
Refactoring render.c
Diffstat (limited to 'minilibx/mlx_int_str_to_wordtab.c')
-rw-r--r--minilibx/mlx_int_str_to_wordtab.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/minilibx/mlx_int_str_to_wordtab.c b/minilibx/mlx_int_str_to_wordtab.c
new file mode 100644
index 0000000..3b2ef2e
--- /dev/null
+++ b/minilibx/mlx_int_str_to_wordtab.c
@@ -0,0 +1,107 @@
+//
+// str 2 wordtab & co
+// by ol
+
+
+#include <stdlib.h>
+#include <string.h>
+
+int mlx_int_str_str(char *str,char *find,int len)
+{
+ int len_f;
+ int pos;
+ char *s;
+ char *f;
+
+ len_f = strlen(find);
+ if (len_f>len)
+ return (-1);
+ pos = 0;
+ while (*(str+len_f-1))
+ {
+ s = str;
+ f = find;
+ while (*(f++) == *(s++))
+ if (!*f)
+ return (pos);
+ str ++;
+ pos ++;
+ }
+ return (-1);
+}
+
+
+
+int mlx_int_str_str_cote(char *str,char *find,int len)
+{
+ int len_f;
+ int pos;
+ char *s;
+ char *f;
+ int cote;
+
+ len_f = strlen(find);
+ if (len_f>len)
+ return (-1);
+ cote = 0;
+ pos = 0;
+ while (*(str+len_f-1))
+ {
+ if (*str=='"')
+ cote = 1-cote;
+ if (!cote)
+ {
+ s = str;
+ f = find;
+ while (*(f++) == *(s++))
+ if (!*f)
+ return (pos);
+ }
+ str ++;
+ pos ++;
+ }
+ return (-1);
+}
+
+
+char **mlx_int_str_to_wordtab(char *str)
+{
+ char **tab;
+ int pos;
+ int nb_word;
+ int len;
+
+ len = strlen(str);
+ nb_word = 0;
+ pos = 0;
+ while (pos<len)
+ {
+ while (*(str+pos)==' ' || *(str+pos)=='\t')
+ pos ++;
+ if (*(str+pos))
+ nb_word ++;
+ while (*(str+pos) && *(str+pos)!=' ' && *(str+pos)!='\t')
+ pos ++;
+ }
+ if (!(tab = malloc((1+nb_word)*sizeof(*tab))))
+ return ((char **)0);
+ nb_word = 0;
+ pos = 0;
+ while (pos<len)
+ {
+ while (*(str+pos)==' ' || *(str+pos)=='\t')
+ {
+ *(str+pos) = 0;
+ pos ++;
+ }
+ if (*(str+pos))
+ {
+ tab[nb_word] = str+pos;
+ nb_word ++;
+ }
+ while (*(str+pos) && *(str+pos)!=' ' && *(str+pos)!='\t')
+ pos ++;
+ }
+ tab[nb_word] = 0;
+ return (tab);
+}