diff options
| author | Dominik Kaiser | 2024-05-09 13:58:50 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-05-09 13:58:50 +0200 |
| commit | 7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc (patch) | |
| tree | 92cffacb52f96bfc3a2e52419d7ae3b3234e37b7 /mlx/mlx_int_str_to_wordtab.c | |
| parent | 0673f8b572b575bd5f3f9297cff615d61494dcdf (diff) | |
| download | so_long-7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc.tar.gz so_long-7b7f18ebf7636b656788d8f0bfea5ab2662fd8dc.zip | |
Add MiniLibX
Diffstat (limited to 'mlx/mlx_int_str_to_wordtab.c')
| -rw-r--r-- | mlx/mlx_int_str_to_wordtab.c | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/mlx/mlx_int_str_to_wordtab.c b/mlx/mlx_int_str_to_wordtab.c new file mode 100644 index 0000000..3b2ef2e --- /dev/null +++ b/mlx/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); +} |
