diff options
author | Rudy Bousset <rbousset@z2r4p3.le-101.fr> | 2020-01-23 15:18:45 +0100 |
---|---|---|
committer | Rudy Bousset <rbousset@z2r4p3.le-101.fr> | 2020-01-23 15:18:45 +0100 |
commit | a6acf55cddec28eebf8d0e1c44603270d591cdee (patch) | |
tree | dff9c6d1075c05ee89631021e7211343e6949b28 /minilibx/mlx_int_str_to_wordtab.c | |
parent | Deleted libx (diff) | |
download | 42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.gz 42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.bz2 42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.xz 42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.tar.zst 42-cub3d-a6acf55cddec28eebf8d0e1c44603270d591cdee.zip |
Added back minilibx, added gitignore
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); +} |