diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-14 11:22:21 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-15 06:01:51 +0100 |
| commit | 0433beffa8c5caae0503082b9776e1035c44f94f (patch) | |
| tree | 45b94ba359fef2dbca65a2f317d9cc09a4b521fe /minilibx/mlx_int_str_to_wordtab.c | |
| parent | b71e91e052a2884626c297cb014cbe2b63131c80 (diff) | |
| download | cub3d-0433beffa8c5caae0503082b9776e1035c44f94f.tar.gz cub3d-0433beffa8c5caae0503082b9776e1035c44f94f.tar.bz2 cub3d-0433beffa8c5caae0503082b9776e1035c44f94f.zip | |
Added miniLibX and basic .cub generator
Diffstat (limited to 'minilibx/mlx_int_str_to_wordtab.c')
| -rw-r--r-- | minilibx/mlx_int_str_to_wordtab.c | 107 |
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); +} |
