From: Dominik Kaiser Date: Wed, 6 Mar 2024 20:02:09 +0000 (+0100) Subject: Setup and current progress X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=f861789c3e5e004395c1b7214757d5a83625d845;p=42%2Flibft.git Setup and current progress Forgot to commit earlier... --- f861789c3e5e004395c1b7214757d5a83625d845 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e69de29 diff --git a/ft_atoi.c b/ft_atoi.c new file mode 100644 index 0000000..6f7bd55 --- /dev/null +++ b/ft_atoi.c @@ -0,0 +1,45 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = '\t' && str[i] <= '\r' || str[i] == ' ') + { + i++; + } + if (str[i] == '-') + { + posneg = -1; + i++; + } + while (str[i] >= '0' && str[i] <= '9') + { + result = 10 * result + str[i] - '0'; + i++; + } + return (result * posneg); +} + +/* #include */ +/* #include */ +/* int main() { */ +/* char str[] = " -42eaeouai"; */ +/* printf("atoi: %d\n", atoi(str)); */ +/* printf("ft_atoi: %d\n", ft_atoi(str)); */ +/* } */ diff --git a/ft_bzero.c b/ft_bzero.c new file mode 100644 index 0000000..d84d507 --- /dev/null +++ b/ft_bzero.c @@ -0,0 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_bzero.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void ft_bzero(void *s, size_t n) +{ + char *ptr; + size_t i; + + ptr = (char *)b; + i = 0; + while (i < n) + { + ptr[i] = 0; + i++; + } +} diff --git a/ft_calloc.c b/ft_calloc.c new file mode 100644 index 0000000..117892d --- /dev/null +++ b/ft_calloc.c @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_calloc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *calloc(size_t count, size_t size) +{ + void *result; + size_t i; + + result = malloc(count * size); + i = 0; + while (i < count * size) + { + *((char *)result + i) = 0; + i++; + } + return (result); +} diff --git a/ft_isalnum.c b/ft_isalnum.c new file mode 100644 index 0000000..4de4a63 --- /dev/null +++ b/ft_isalnum.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalnum.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' + && c <= '9')) + return (1); + return (0); +} diff --git a/ft_isalpha.c b/ft_isalpha.c new file mode 100644 index 0000000..667bb5f --- /dev/null +++ b/ft_isalpha.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isalpha.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) + return (1); + return (0); +} diff --git a/ft_isascii.c b/ft_isascii.c new file mode 100644 index 0000000..6570d44 --- /dev/null +++ b/ft_isascii.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isascii.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = 0 && c < 128) + return (1); + return (0); +} diff --git a/ft_isdigit.c b/ft_isdigit.c new file mode 100644 index 0000000..273bfa3 --- /dev/null +++ b/ft_isdigit.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isdigit.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = '0' && c <= '9') + return (1); + return (0); +} diff --git a/ft_isprint.c b/ft_isprint.c new file mode 100644 index 0000000..6c9faed --- /dev/null +++ b/ft_isprint.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_isprint.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = ' ' && c <= '~') + return (1); + return (0); +} diff --git a/ft_memchr.c b/ft_memchr.c new file mode 100644 index 0000000..da3b0a6 --- /dev/null +++ b/ft_memchr.c @@ -0,0 +1,34 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *ft_memchr(const void *s, int c, size_t n) +{ + size_t i; + + i = 0; + while (i < n) + { + if (*((unsigned char *)s + i) == (unsigned char)c) + return ((void *)s + i); + i++; + } + return (0); +} + +/* #include */ +/* int main () { */ +/* char str[] = "Hello world"; */ +/* printf("memchr: %s\n", (char *) memchr(str, 'o', 11)); */ +/* printf("ft_memchr: %s\n", (char *) ft_memchr(str, 'o', 11)); */ +/* } */ diff --git a/ft_memcmp.c b/ft_memcmp.c new file mode 100644 index 0000000..a1e18da --- /dev/null +++ b/ft_memcmp.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +int ft_memcmp(const void *s1, const void *s2, size_t n) +{ + size_t i; + int result; + + i = 0; + result = 0; + while (!result && i < n) + { + result = *((unsigned char *)s1 + i) - *((unsigned char *)s2 + i); + i++; + } + return (result); +} + +/* #include */ + +/* int main(void) */ +/* { */ +/* char str1[] = "Hello"; */ +/* char str2[] = "Hellu"; */ + +/* printf("memcmp: %d\n", memcmp(str1, str2, 5)); */ +/* printf("ft_memcmp: %d\n", ft_memcmp(str1, str2, 5)); */ +/* } */ diff --git a/ft_memcpy.c b/ft_memcpy.c new file mode 100644 index 0000000..49c4575 --- /dev/null +++ b/ft_memcpy.c @@ -0,0 +1,37 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *ft_memcpy(void *restrict dst, const void *restrict src, size_t n) +{ + size_t i; + + i = 0; + while (i < n) + { + *((char *)dst + i) = *((char *)src + i); + i++; + } + return (dst); +} + +/* #include */ +/* int main(void) */ +/* { */ +/* char src[] = "Test Hurra"; */ +/* char src2[] = "Test Hurra"; */ +/* char dst[] = "AAAAAAIIIIIEEEEE"; */ +/* char dst2[] = "AAAAAAIIIIIEEEEE"; */ +/* printf("ft_memcpy: %s\n", (char *) ft_memcpy(dst, src, 20)); */ +/* printf("memcpy: %s\n", (char *) memcpy(dst2, src2, 20)); */ +/* } */ diff --git a/ft_memmove.c b/ft_memmove.c new file mode 100644 index 0000000..9ca3fac --- /dev/null +++ b/ft_memmove.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memmove.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *ft_memmove(void *dst, const void *src, size_t len) +{ + size_t i; + + if (dst > src) + { + i = len; + while (i-- > 0) + { + *((char *)dst + i) = *((char *)src + i); + } + } + else + { + i = 0; + while (i < len) + { + *((char *)dst + i) = *((char *)src + i); + i++; + } + } + return (dst); +} + +/* #include */ + +/* int main(void) */ +/* { */ +/* char text[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; */ +/* char text2[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; */ + +/* printf("memmove: %s\n", memmove(text + 5, text, 5)); */ +/* printf("ft_memmove: %s\n", ft_memmove(text2 + 5, text2, 5)); */ +/* } */ diff --git a/ft_memset.c b/ft_memset.c new file mode 100644 index 0000000..618a78d --- /dev/null +++ b/ft_memset.c @@ -0,0 +1,39 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_memset.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void *ft_memset(void *b, int c, size_t len) +{ + char *ptr; + size_t i; + + ptr = (char *)b; + i = 0; + while (i < len) + { + ptr[i] = (unsigned char)c; + i++; + } + return (b); +} + +/* #include */ + +/* int main(void) */ +/* { */ +/* char str[] = "Hello world"; */ + +/* printf("STR: %s\n", str); */ +/* printf("ft_memset: %s\n", ft_memset((char *)str, 'A' + 255, 5)); */ +/* printf("memset: %s\n", memset((char *)str, 'A' + 255, 5)); */ +/* } */ diff --git a/ft_putchar_fd.c b/ft_putchar_fd.c new file mode 100644 index 0000000..1eca491 --- /dev/null +++ b/ft_putchar_fd.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void ft_putchar_fd(char c, int fd) +{ + write(fd, &c, 1); +} diff --git a/ft_putendl_fd.c b/ft_putendl_fd.c new file mode 100644 index 0000000..9929875 --- /dev/null +++ b/ft_putendl_fd.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putendl_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void ft_putendl_fd(char *s, int fd) +{ + int len; + + len = 0; + while (s[len]) + { + len++; + } + write(fd, s, len); + write(fd, "\n", 1); +} diff --git a/ft_putstr_fd.c b/ft_putstr_fd.c new file mode 100644 index 0000000..3be5a70 --- /dev/null +++ b/ft_putstr_fd.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putstr_fd.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +void ft_putstr_fd(char *s, int fd) +{ + int len; + + len = 0; + while (s[len]) + len++; + write(fd, s, len); +} diff --git a/ft_strchr.c b/ft_strchr.c new file mode 100644 index 0000000..e53f78e --- /dev/null +++ b/ft_strchr.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser */ +/* #include */ +/* int main() { */ +/* char str[] = "Hello world"; */ +/* printf("strchr: %s\n", strchr(str, 'o')); */ +/* printf("ft_strchr: %s\n", ft_strchr(str, 'o')); */ +/* } */ diff --git a/ft_strdup.c b/ft_strdup.c new file mode 100644 index 0000000..af7ab12 --- /dev/null +++ b/ft_strdup.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strdup.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +char *ft_strdup(const char *s1) +{ + char *result; + int len; + + len = 0; + while (*(s1++)) + len++; + result = malloc(len + 1); + if (!result) + return (0); + result[++len] = '\0'; + while (len--) + result[len] = *(--s1); + return (result); +} + +/* #include */ +/* int main() { */ +/* char *output; */ +/* char input[] = "Dies ist ein Test."; */ +/* output = ft_strdup(input); */ +/* printf("%s\n", output); */ +/* } */ diff --git a/ft_strlcat.c b/ft_strlcat.c new file mode 100644 index 0000000..c16105a --- /dev/null +++ b/ft_strlcat.c @@ -0,0 +1,48 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +size_t ft_strlcat(char *restrict dst, const char *restrict src, size_t dstsize) +{ + size_t len; + size_t i; + + if (dstsize == 0) + return (0); + len = 0; + while (len < dstsize - 1 && dst[len] != '\0') + { + len++; + } + i = 0; + while (len < dstsize - 1 && src[i] != '\0') + { + dst[len] = src[i]; + len++; + i++; + } + dst[len] = '\0'; + return (len); +} + +/* #include */ +/* int main () { */ +/* char dst[12] = "Hello "; */ +/* char dst2[12] = "Hello "; */ +/* char src[] = "World"; */ + +/* size_t len = strlcat(dst, src, 12); */ +/* size_t len2 = ft_strlcat(dst2, src, 12); */ +/* printf("strlcat (%zu): %s\n", len, dst); */ +/* printf("ft_strlcat (%zu): %s\n", len2, dst2); */ +/* } */ diff --git a/ft_strlcpy.c b/ft_strlcpy.c new file mode 100644 index 0000000..670bf18 --- /dev/null +++ b/ft_strlcpy.c @@ -0,0 +1,50 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +size_t ft_strlcpy(char *restrict dst, const char *restrict src, size_t dstsize) +{ + size_t len; + + len = 0; + if (dstsize > 0) + { + while (len < dstsize - 1 && src[len] != '\0') + { + dst[len] = src[len]; + len++; + } + dst[len] = '\0'; + while (src[len] != '\0') + { + len++; + } + } + return (len); +} + +/* #include */ + +/* int main(void) */ +/* { */ +/* char src[] = "Hello"; */ +/* char dst[] = "01234567890123456789"; */ +/* char dst2[] = "01234567890123456789"; */ +/* size_t len; */ +/* size_t len2; */ + +/* len = strlcpy(dst, src, 10); */ +/* len2 = ft_strlcpy(dst2, src, 10); */ +/* printf("strlcpy (%zu): %s\n", len, dst); */ +/* printf("ft_strlcpy (%zu): %s\n", len2, dst2); */ +/* } */ diff --git a/ft_strlen.c b/ft_strlen.c new file mode 100644 index 0000000..e201765 --- /dev/null +++ b/ft_strlen.c @@ -0,0 +1,21 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strlen.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +int ft_strncmp(const char *s1, const char *s2, size_t n) +{ + int result; + + result = 0; + while (!result && n > 0 && (*s1 || *s2)) + { + result = *s1 - *s2; + if (*s1) + s1++; + if (*s2) + s2++; + n--; + } + return (result); +} + +/* #include */ +/* int main() { */ +/* char str1[] = "Hello"; */ +/* char str2[] = "Hellu"; */ +/* printf("strncmp: %d\n", strncmp(str1, str2, 5)); */ +/* printf("ft_strncmp: %d\n", ft_strncmp(str1, str2, 5)); */ +/* } */ diff --git a/ft_strnstr.c b/ft_strnstr.c new file mode 100644 index 0000000..b91d162 --- /dev/null +++ b/ft_strnstr.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strnstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser + +char *ft_strnstr(const char *haystack, const char *needle, size_t len) +{ + size_t i; + size_t k; + + i = 0; + while (i < len) + { + k = 0; + while (haystack[i + k] == needle[k]) + { + k++; + } + if (!needle[k]) + return ((char *)haystack + i); + i++; + } + return (0); +} + +/* #include */ +/* int main() { */ +/* char haystack[] = "Hello world"; */ +/* char needle[] = "d"; */ +/* printf("strnstr: %s\n", strnstr(haystack, needle, 10)); */ +/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, needle, 10)); */ +/* } */ diff --git a/ft_strrchr.c b/ft_strrchr.c new file mode 100644 index 0000000..e548f5b --- /dev/null +++ b/ft_strrchr.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strrchr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser */ +/* #include */ + +/* int main(void) */ +/* { */ +/* char str[] = "Hello world"; */ + +/* printf("strrchr: %s\n", strrchr(str, 'o')); */ +/* printf("ft_strrchr: %s\n", ft_strrchr(str, 'o')); */ +/* } */ diff --git a/ft_tolower.c b/ft_tolower.c new file mode 100644 index 0000000..31e848f --- /dev/null +++ b/ft_tolower.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_tolower.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = 'A' && c <= 'Z') + return (c + 32); + return (c); +} diff --git a/ft_toupper.c b/ft_toupper.c new file mode 100644 index 0000000..5082232 --- /dev/null +++ b/ft_toupper.c @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_toupper.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser = 'a' && c <= 'z') + return (c - 32); + return (c); +} diff --git a/libft.h b/libft.h new file mode 100644 index 0000000..dbad3f8 --- /dev/null +++ b/libft.h @@ -0,0 +1,6 @@ +#ifndef LIBFT_H_ +#define LIBFT_H_ + + + +#endif // LIBFT_H_