CC=cc
CFLAGS=-Wall -Wextra -Werror
-SRC_FILES = $(wildcard *.c)
+SRC_FILES = ft_atoi.c \
+ ft_bzero.c \
+ ft_calloc.c \
+ ft_isalnum.c \
+ ft_isalpha.c \
+ ft_isascii.c \
+ ft_isdigit.c \
+ ft_isprint.c \
+ ft_itoa.c \
+ ft_memchr.c \
+ ft_memcmp.c \
+ ft_memcpy.c \
+ ft_memmove.c \
+ ft_memset.c \
+ ft_putchar_fd.c \
+ ft_putendl_fd.c \
+ ft_putnbr_fd.c \
+ ft_putstr_fd.c \
+ ft_split.c \
+ ft_strchr.c \
+ ft_strdup.c \
+ ft_striteri.c \
+ ft_strjoin.c \
+ ft_strlcat.c \
+ ft_strlcpy.c \
+ ft_strlen.c \
+ ft_strmapi.c \
+ ft_strncmp.c \
+ ft_strnstr.c \
+ ft_strrchr.c \
+ ft_strtrim.c \
+ ft_substr.c \
+ ft_tolower.c \
+ ft_toupper.c \
+
OBJ_FILES = $(SRC_FILES:.c=.o)
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 16:25:27 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:04:02 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:17:19 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_atoi(const char *str)
{
int result;
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 10:57:36 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 12:48:25 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:14:10 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
void ft_bzero(void *s, size_t n)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 19:45:56 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 16:34:30 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:17:31 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdlib.h>
+#include "libft.h"
void *ft_calloc(size_t count, size_t size)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:14:49 by dkaiser #+# #+# */
-/* Updated: 2024/03/04 21:17:16 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:10:50 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_isalnum(int c)
{
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0'
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 19:59:23 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 13:10:30 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:10:10 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_isalpha(int c)
{
if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:07:03 by dkaiser #+# #+# */
-/* Updated: 2024/03/04 21:18:00 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:10:23 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_isdigit(int c)
{
if (c >= '0' && c <= '9')
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:25:31 by dkaiser #+# #+# */
-/* Updated: 2024/03/04 21:27:57 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:11:14 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_isprint(int c)
{
if (c >= ' ' && c <= '~')
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 15:23:01 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 15:50:06 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:16:25 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
void *ft_memchr(const void *s, int c, size_t n)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 15:54:13 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 19:45:09 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:13:54 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
int ft_memcmp(const void *s1, const void *s2, size_t n)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 11:15:12 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 13:48:53 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:14:24 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
void *ft_memcpy(void *dst, const void *src, size_t n)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 11:41:44 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 13:50:41 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:14:38 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
void *ft_memmove(void *dst, const void *src, size_t len)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/05 09:58:19 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 11:42:44 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:13:09 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
void *ft_memset(void *b, int c, size_t len)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 20:36:14 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 21:18:50 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:19:59 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <unistd.h>
+#include "libft.h"
void ft_putchar_fd(char c, int fd)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 20:47:17 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 20:49:12 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:20:39 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <unistd.h>
+#include "libft.h"
void ft_putendl_fd(char *s, int fd)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 20:43:05 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 20:45:40 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:20:16 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <unistd.h>
+#include "libft.h"
void ft_putstr_fd(char *s, int fd)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 14:12:39 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 16:10:27 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:15:56 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
char *ft_strchr(const char *s, int c)
{
int i;
return ((char *)&s[i]);
i++;
}
- if (!c)
+ if (!(char)c)
return ((char *)&s[i]);
return (0);
}
/* #include <stdio.h> */
/* #include <string.h> */
-/* int main() { */
-/* char str[] = "Hello world"; */
-/* printf("strchr: %s\n", strchr(str, 'o')); */
-/* printf("ft_strchr: %s\n", ft_strchr(str, 'o')); */
+
+/* int main(void) */
+/* { */
+/* char str[] = "teste"; */
+
+/* printf("strchr: %p\n", strchr(str, '\0')); */
+/* printf("ft_strchr: %p\n", ft_strchr(str, '\0')); */
/* } */
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 19:54:16 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 20:24:51 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:17:47 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdlib.h>
+#include "libft.h"
char *ft_strdup(const char *s1)
{
char *result;
int len;
+ int i;
len = 0;
- while (*(s1++))
+ while (s1[len])
len++;
result = malloc(len + 1);
if (!result)
return (0);
- result[++len] = '\0';
- while (len--)
- result[len] = *(--s1);
+ result[len] = '\0';
+ i = 0;
+ while (i < len)
+ {
+ result[i] = s1[i];
+ i++;
+ }
return (result);
}
/* #include <stdio.h> */
/* int main() { */
/* char *output; */
-/* char input[] = "Dies ist ein Test."; */
+/* char input[] = "test"; */
/* output = ft_strdup(input); */
/* printf("%s\n", output); */
/* } */
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/07 10:15:33 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:11:30 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:18:27 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdlib.h>
+#include "libft.h"
static int get_len(char const *s)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 13:36:59 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 16:09:50 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:15:10 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
/* size_t ft_strlcat(char *dst, const char *src, size_t dstsize) */
/* { */
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 12:45:25 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:01:05 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:14:56 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
size_t ft_strlcpy(char *dst, const char *src, size_t dstsize)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:29:35 by dkaiser #+# #+# */
-/* Updated: 2024/03/04 21:31:24 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:11:48 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_strlen(const char *str)
{
int len;
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 14:45:10 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:26:15 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:16:10 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
int ft_strncmp(const char *s1, const char *s2, size_t n)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 16:07:54 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 16:40:20 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:16:58 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <string.h>
+#include "libft.h"
char *ft_strnstr(const char *haystack, const char *needle, size_t len)
{
size_t i;
size_t k;
+ if (len < 0 || (!haystack[0] && needle[0]))
+ return (0);
i = 0;
if (*needle == '\0' || needle == haystack)
return ((char *)haystack);
- while (i < len)
+ while (i < len && haystack[i])
{
k = 0;
while (haystack[i + k] && haystack[i + k] == needle[k] && i + k < len)
/* int main(void) */
/* { */
-/* char haystack[] = "M"; */
-/* char needle[] = "MZIRIBMZE"; */
+/* char haystack[] = "abc"; */
+/* char needle[] = "abcde"; */
+/* size_t len = 5; */
-/* printf("strnstr: %s\n", strnstr(haystack, haystack, 2)); */
-/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, haystack, 2)); */
+/* printf("strnstr: %s\n", strnstr(haystack, needle, len)); */
+/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, needle, len)); */
/* } */
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 14:25:30 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:09:13 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 12:51:38 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
last_occurrence = (char *)&s[i];
i++;
}
- if (!c)
+ if (!(char)c)
last_occurrence = (char *)&s[i];
return (last_occurrence);
}
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/07 10:24:17 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:47:40 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:18:40 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdlib.h>
+#include "libft.h"
static int is_in(char c, const char *str)
{
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 21:58:31 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 14:55:55 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:18:11 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#include <stdlib.h>
+#include "libft.h"
char *ft_substr(char const *s, unsigned int start, size_t len)
{
i = 0;
while (s[i])
i++;
+ if (start >= i)
+ len = 0;
if (i - start < len)
len = (i - start);
- if (start >= len)
- len = 0;
result = malloc(len + 1);
- if (result)
+ if (!result)
+ return (0);
+ result[len] = '\0';
+ i = 0;
+ while (i < len)
{
- result[len] = '\0';
- i = 0;
- while (i < len)
- {
- result[i] = s[i + start];
- i++;
- }
+ result[i] = s[i + start];
+ i++;
}
return (result);
}
/* int main () */
/* { */
/* char s[] = "Hello there"; */
-/* char *substr = ft_substr(s, 25, 10); */
+/* char *substr = ft_substr(s, 0, 2); */
/* printf("%s\n", substr); */
/* } */
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:49:28 by dkaiser #+# #+# */
-/* Updated: 2024/03/06 11:49:49 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:15:39 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_tolower(int c)
{
if (c >= 'A' && c <= 'Z')
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/04 21:33:34 by dkaiser #+# #+# */
-/* Updated: 2024/03/04 21:49:16 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:15:26 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
+#include "libft.h"
+
int ft_toupper(int c)
{
if (c >= 'a' && c <= 'z')
/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/03/06 21:38:24 by dkaiser #+# #+# */
-/* Updated: 2024/03/07 16:23:00 by dkaiser ### ########.fr */
+/* Updated: 2024/03/10 13:26:25 by dkaiser ### ########.fr */
/* */
/* ************************************************************************** */
-#ifndef LIBFT_H_
-# define LIBFT_H_
+#ifndef LIBFT_H
+# define LIBFT_H
+
+# include <stdlib.h>
+# include <string.h>
+# include <unistd.h>
int ft_isalpha(int c);
int ft_isdigit(int c);