From: Dominik Kaiser Date: Thu, 7 Mar 2024 15:51:56 +0000 (+0100) Subject: Add stuff, fix stuff and whatever X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=c63ee0defff25db4612e9114d847b5045948e366;p=42%2Flibft.git Add stuff, fix stuff and whatever --- diff --git a/Makefile b/Makefile index e69de29..3920b81 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,20 @@ +NAME=libft.a +CC=cc +CFLAGS=-Wall -Wextra -Werror + +SRC_FILES = $(wildcard *.c) +OBJ_FILES = $(SRC_FILES:.c=.o) + + +all: $(NAME) + +$(NAME): $(OBJ_FILES) + ar rcs $(NAME) $(OBJ_FILES) + +clean: + rm -f $(OBJ_FILES) + +fclean: clean + -rm -f $(NAME) + +re: fclean all diff --git a/ft_atoi.c b/ft_atoi.c index 6f7bd55..568a616 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -6,7 +6,7 @@ /* By: dkaiser = '\t' && str[i] <= '\r' || str[i] == ' ') + while ((str[i] >= '\t' && str[i] <= '\r') || str[i] == ' ') { i++; } @@ -28,6 +28,8 @@ int ft_atoi(const char *str) posneg = -1; i++; } + else if (str[i] == '+') + i++; while (str[i] >= '0' && str[i] <= '9') { result = 10 * result + str[i] - '0'; diff --git a/ft_bzero.c b/ft_bzero.c index d84d507..2f77d78 100644 --- a/ft_bzero.c +++ b/ft_bzero.c @@ -6,7 +6,7 @@ /* By: dkaiser -void *calloc(size_t count, size_t size) +void *ft_calloc(size_t count, size_t size) { void *result; size_t i; result = malloc(count * size); - i = 0; - while (i < count * size) + if (result) { - *((char *)result + i) = 0; - i++; + i = 0; + while (i < count * size) + { + *((char *)result + i) = 0; + i++; + } } return (result); } diff --git a/ft_isalpha.c b/ft_isalpha.c index 667bb5f..64d4b9a 100644 --- a/ft_isalpha.c +++ b/ft_isalpha.c @@ -6,11 +6,11 @@ /* By: dkaiser = 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) return (1); diff --git a/ft_memcpy.c b/ft_memcpy.c index 49c4575..0ca79fa 100644 --- a/ft_memcpy.c +++ b/ft_memcpy.c @@ -6,32 +6,33 @@ /* By: dkaiser -void *ft_memcpy(void *restrict dst, const void *restrict src, size_t n) +void *ft_memcpy(void *dst, const void *src, size_t n) { - size_t i; + char *dst_ptr; + char *src_ptr; - i = 0; - while (i < n) - { - *((char *)dst + i) = *((char *)src + i); - i++; - } + dst_ptr = (char *)dst; + src_ptr = (char *)src; + if (!dst && !src) + return (dst); + while (n--) + *dst_ptr++ = *src_ptr++; return (dst); } /* #include */ /* int main(void) */ /* { */ -/* char src[] = "Test Hurra"; */ -/* char src2[] = "Test Hurra"; */ -/* char dst[] = "AAAAAAIIIIIEEEEE"; */ -/* char dst2[] = "AAAAAAIIIIIEEEEE"; */ +/* char src[] = "a"; */ +/* char src2[] = "a"; */ +/* char dst[] = ""; */ +/* char dst2[] = ""; */ /* 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 index 9ca3fac..e4aa03e 100644 --- a/ft_memmove.c +++ b/ft_memmove.c @@ -6,7 +6,7 @@ /* By: dkaiser src) { i = len; diff --git a/ft_memset.c b/ft_memset.c index 618a78d..60a18e9 100644 --- a/ft_memset.c +++ b/ft_memset.c @@ -6,7 +6,7 @@ /* By: dkaiser -size_t ft_strlcat(char *restrict dst, const char *restrict src, size_t dstsize) +/* size_t ft_strlcat(char *dst, const char *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); */ +/* } */ + +size_t ft_strlcat(char *dst, const char *src, size_t dstsize) { - size_t len; + size_t src_len; + size_t dst_len; size_t i; - if (dstsize == 0) - return (0); - len = 0; - while (len < dstsize - 1 && dst[len] != '\0') - { - len++; - } + src_len = 0; + while (src[src_len]) + src_len++; + dst_len = 0; + while (dst[dst_len]) + dst_len++; + if (dst_len >= dstsize) + return (dstsize + src_len); i = 0; - while (len < dstsize - 1 && src[i] != '\0') + while (i < src_len && dst_len + i < dstsize - 1) { - dst[len] = src[i]; - len++; + dst[dst_len + i] = src[i]; i++; } - dst[len] = '\0'; - return (len); + dst[dst_len + i] = '\0'; + return (dst_len + src_len); } /* #include */ /* int main () { */ /* char dst[12] = "Hello "; */ /* char dst2[12] = "Hello "; */ -/* char src[] = "World"; */ +/* char src[] = "World123"; */ /* size_t len = strlcat(dst, src, 12); */ /* size_t len2 = ft_strlcat(dst2, src, 12); */ diff --git a/ft_strlcpy.c b/ft_strlcpy.c index 670bf18..b4f6abc 100644 --- a/ft_strlcpy.c +++ b/ft_strlcpy.c @@ -6,13 +6,13 @@ /* By: dkaiser -size_t ft_strlcpy(char *restrict dst, const char *restrict src, size_t dstsize) +size_t ft_strlcpy(char *dst, const char *src, size_t dstsize) { size_t len; @@ -26,9 +26,12 @@ size_t ft_strlcpy(char *restrict dst, const char *restrict src, size_t dstsize) } dst[len] = '\0'; while (src[len] != '\0') - { len++; - } + } + else + { + while (src[len] != '\0') + len++; } return (len); } @@ -43,8 +46,8 @@ size_t ft_strlcpy(char *restrict dst, const char *restrict src, size_t dstsize) /* size_t len; */ /* size_t len2; */ -/* len = strlcpy(dst, src, 10); */ -/* len2 = ft_strlcpy(dst2, src, 10); */ +/* len = strlcpy(dst, src, 0); */ +/* len2 = ft_strlcpy(dst2, src, 0); */ /* printf("strlcpy (%zu): %s\n", len, dst); */ /* printf("ft_strlcpy (%zu): %s\n", len2, dst2); */ /* } */ diff --git a/ft_strncmp.c b/ft_strncmp.c index 2d54ec5..af24b2a 100644 --- a/ft_strncmp.c +++ b/ft_strncmp.c @@ -6,7 +6,7 @@ /* By: dkaiser 0 && (*s1 || *s2)) { - result = *s1 - *s2; + result = (unsigned char)*s1 - (unsigned char)*s2; if (*s1) s1++; if (*s2) diff --git a/ft_strnstr.c b/ft_strnstr.c index b91d162..2b96b64 100644 --- a/ft_strnstr.c +++ b/ft_strnstr.c @@ -6,7 +6,7 @@ /* By: dkaiser */ -/* 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)); */ + +/* int main(void) */ +/* { */ +/* char haystack[] = "M"; */ +/* char needle[] = "MZIRIBMZE"; */ + +/* printf("strnstr: %s\n", strnstr(haystack, haystack, 2)); */ +/* printf("ft_strnstr: %s\n", ft_strnstr(haystack, haystack, 2)); */ /* } */ diff --git a/ft_strrchr.c b/ft_strrchr.c index e548f5b..ac0d0ab 100644 --- a/ft_strrchr.c +++ b/ft_strrchr.c @@ -6,7 +6,7 @@ /* By: dkaiser