fix(ft_strchr): c was not cast to char for check agains \0

This commit is contained in:
Khaïs COLIN 2024-10-23 10:35:01 +02:00
parent 88a147fd0f
commit 6236107bd4

View file

@ -6,7 +6,7 @@
/* By: kcolin <marvin@42.fr> +#+ +:+ +#+ */ /* By: kcolin <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/16 10:34:23 by kcolin #+# #+# */ /* Created: 2024/10/16 10:34:23 by kcolin #+# #+# */
/* Updated: 2024/10/18 17:42:51 by kcolin ### ########.fr */ /* Updated: 2024/10/23 10:33:55 by kcolin ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -17,29 +17,35 @@ char *ft_strchr(const char *s, int c)
i = 0; i = 0;
while (s[i] != '\0') while (s[i] != '\0')
{ {
if (s[i] == (unsigned char)c) if (s[i] == (char)c)
return ((char *)s + i); return ((char *)s + i);
i++; i++;
} }
if (c == '\0') if ((char)c == '\0')
return ((char *)s + i); return ((char *)s + i);
return (0); return (0);
} }
/* /*
#include <stdio.h> #include <stdio.h> // bad
#include <string.h> // bad
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
char *result; char *result;
if (argc > 2) if (argc > 1)
{ {
result = ft_strchr(argv[1], argv[2][0]); result = ft_strchr(argv[1], '\0' + 256);
if (result == 0) if (result == 0)
printf("(null)\n"); printf("(null)\n");
else else
printf("%s\n", result); printf("[%p]\n", result);
result = strchr(argv[1], '\0' + 256);
if (result == 0)
printf("(null)\n");
else
printf("[%p]\n", result);
} }
return (0); return (0);
} }