| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* ft_strreplace.c :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2017/01/19 23:19:39 by bchanot #+# #+# */
- /* Updated: 2018/10/14 03:25:42 by bchanot ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "libft.h"
- char *ft_stristr(const char *s1, const char *s2)
- {
- size_t i;
- size_t j;
- size_t size;
- i = 0;
- size = ft_strlen(s2);
- if (size == 0)
- return ((char *)s1);
- while (s1[i])
- {
- if ((i && s1[i - 1] != '\\') || !i)
- {
- j = 0;
- while (s2[j] == s1[i + j])
- {
- if (j == size - 1)
- return ((char *)&s1[i]);
- j++;
- }
- }
- i++;
- }
- return (NULL);
- }
- char *ft_strreplace(const char *src, const char *var, const char *val)
- {
- char *new;
- size_t i;
- size_t j;
- size_t k;
- if (!(new = ft_strnew(ft_strlen(src) - ft_strlen(var) +
- ft_strlen(val) + 1)))
- return (NULL);
- i = -1;
- while (ft_strcmp(&src[++i], ft_stristr(src, var)))
- new[i] = src[i];
- j = -1;
- k = i;
- while (val[++j])
- {
- new[k] = val[j];
- k++;
- }
- i += ft_strlen(var);
- j = i;
- while (src[i])
- new[k++] = src[i++];
- return (new);
- }
|