ex00

/*#include<stdio.h>*/

int	ft_strcmp(char *s1, char *s2)

{
	int	i;

	i = 0;
	while ((s1[i] == s2[i]) && (s1[i] != 0) && (s2[i] != 0))
		i++;
	return (s1[i] - s2[i]);
}
/*
int	main(void)

{
	int	result;

	result = ft_strcmp("hello world!!", "hello");
	printf("result = negative value, result :%d\n", result);
	return (0);
}
*/

ex01

#include<stdio.h>
#include<string.h>

int	ft_strncmp(char *s1, char *s2, unsigned int n)

{
	unsigned int	i;

	i = 0;
	if (n == 0)
		return (0);
	while (s1[i] == s2[i] && s1[i] != '\0' && i + 1 < n)
	{
		i++;
	}	
	if (s1[i] == s2[i])
		return (0);
	else
		return (s1[i] - s2[i]);
}
/*
int	main(void)

{
	char str1[] = "abcedf";
	char str2[] = "abcdaa";
	char str3[] = "abcdzz";

	printf("%d ", strncmp(str1, str2, 3));
	printf("%d ", ft_strncmp(str1, str2, 3));

	printf("%d ", strncmp(str1, str3, 10));
	printf("%d ", ft_strncmp(str1, str3, 10));
	
	printf("%d ", strncmp(str1, str2, 5));
	printf("%d ", ft_strncmp(str1, str2, 5));

	printf("%d ", strncmp(str2, str3, 7));
	printf("%d ", ft_strncmp(str2, str3, 7));
	return 0;
}
*/

ex02

/*#include<stdio.h>*/

char	*ft_strcat(char *dest, char *src)

{
	int	i;
	int	j;

	i = 0;
	j = 0;
	while (dest[i] != '\0')
	{
		i++;
	}
	while (src[j] != '\0')
	{
		dest[i] = src[j];
		i++;
		j++;
	}
	dest[i] = '\0';
	return (dest);
}
/*
int	main(void)

{
	char	dest[10] = "a1b2c3d";

	ft_strcat(dest, "cdefghijklmnop");
	printf("result = %s\n", dest);
	return (0);
}
*/

ex03

#include<stdio.h>
#include<string.h>

char	*ft_strncat(char *dest, char *src, unsigned int nb)

{
	unsigned int	i;
	unsigned int	j;

	i = 0;
	j = 0;
	while (dest[i] != '\0')
	{
		i++;
	}
	while (src[j] != '\0' && nb > j)
	{
		dest[i] = src[j];
		i++;
		j++;
	}
	dest[i] = '\0';
	return (dest);
}

int	main(void)

{
	char	str1[20] = "Hello";
	char	str2[20] = "World!!";

	ft_strncat(str1, str2, 5);
	printf("%s\n", str1);
	return (0);
}

ex04

#include<stdio.h>

char	*ft_strstr(char *str, char *to_find)

{
	int	i;
	int	j;

	i = 0;
	if (to_find[0] == '\0')
		return (str);
	while (str[i] != '\0')
	{
		j = 0;
		while (str[i + j] == to_find[j])
		{
			if (to_find[j + 1] == '\0')
			{
				return (str + i);
			}
			j++;
		}
		i++;
	}
	return (0);
}

int	main(void)

{
	char *string1 = "aaahelloaaa";
	char *string2 = "hillo";
	char *result;

	result = ft_strstr(string1, string2);
	//Result = a pointer to "haystack"
	printf("%s\n", result);
}

ex05

/*#include<stdio.h>
#include<string.h>*/

int	ft_strlen(char *str)

{
	int	i;

	i = 0;
	while (str[i] != '\0')
	{
		i++;
	}
	return (i);
}

unsigned int	ft_strlcat(char *dest, char *src, unsigned int size)

{
	unsigned int	i;
	unsigned int	j;
	unsigned int	dest_len;
	unsigned int	src_len;

	dest_len = ft_strlen(dest);
	src_len = ft_strlen(src);
	i = dest_len;
	j = 0;
	while ((src[j] != '\0') && ((j + dest_len + 1) < size))
	{
		dest[i] = src[j];
		i++;
		j++;
	}
	dest[i] = '\0';
	if (dest_len < size)
		return (dest_len + src_len);
	else
		return (src_len + size);
}
/*
int	main(void)

{
	char	s1[50] = "hello";
	char	s2[7] = "world";
	char	s3[50] = "hello";

	unsigned int j = ft_strlcat(s1, s2, 8);
	printf("%u\n", j);   //10
	printf("%s\n", s1);   //hellowo
	j = ft_strlcat(s3, s2, 8);
	printf("%u\n", j);   //10
	printf("%s\n", s3);   //hellowo
}
*/