diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-21 02:06:06 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-21 02:06:06 +0100 |
| commit | afc8c70a66773563f6e7429b500abcbab631722b (patch) | |
| tree | 731b50b430b493280ce97a557f86f45cb2f37780 /ft_strlen.c | |
| parent | f96be9ba455b0a71562e732664717b507b4bd548 (diff) | |
| download | libft-afc8c70a66773563f6e7429b500abcbab631722b.tar.gz libft-afc8c70a66773563f6e7429b500abcbab631722b.tar.bz2 libft-afc8c70a66773563f6e7429b500abcbab631722b.zip | |
ft_memset and ft_strlen optimization
Diffstat (limited to 'ft_strlen.c')
| -rw-r--r-- | ft_strlen.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/ft_strlen.c b/ft_strlen.c index dc612a8..0e0a47c 100644 --- a/ft_strlen.c +++ b/ft_strlen.c @@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 10:32:48 by cacharle #+# #+# */ -/* Updated: 2019/11/20 03:31:28 by cacharle ### ########.fr */ +/* Updated: 2019/11/21 01:45:42 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -14,10 +14,28 @@ size_t ft_strlen(const char *s) { - size_t counter; + unsigned long int *ptr; + const char *cpy; - counter = 0; - while (s[counter]) - counter++; - return (counter); + ptr = (unsigned long int*)s; + while (TRUE) + { + cpy = (const char*)ptr++; + if (cpy[0] == '\0') + return (cpy - s); + if (cpy[1] == '\0') + return (cpy + 1 - s); + if (cpy[2] == '\0') + return (cpy + 2 - s); + if (cpy[3] == '\0') + return (cpy + 3 - s); + if (cpy[4] == '\0') + return (cpy + 4 - s); + if (cpy[5] == '\0') + return (cpy + 5 - s); + if (cpy[6] == '\0') + return (cpy + 6 - s); + if (cpy[7] == '\0') + return (cpy + 7 - s); + } } |
