int main() { char dst[8]; char *src = "Source"; int c = 5; int character = 'o'; char *p; int i; for (i = 0; i < c; i++) dst[i] = '*'; printf("src = %s\n", src); p = ft_memccpy(dst, src, character, c); assert(p != NULL); printf("Character '%c' is found in \"%s\"\n", character, src); printf("*p = %c\n", *p); printf("dst = "); for (i = 0; i < c; i++) putchar(dst[i]); printf("\n"); return 0; }
void *ft_memccpy(void *dst, const void *src, int c, size_t n) { if (n != 0) { *(unsigned char *)dst = *(unsigned char *)src; if (*(unsigned char *)src == (unsigned char)c) return (dst + 1); return (ft_memccpy(dst + 1, src + 1, c, --n)); } return (NULL); }
int main(void) { char *a; char *b; char *c; char d; a = "qwertyuiop"; b = malloc(100); c = malloc(100); b = ft_memset(b, 65, 11); c = ft_memset(c, 65, 11); d = 'y'; b = ft_memccpy(b, a, d, 11); c = memccpy(c, a, d, 11); write(1, b, 11); write(1, "\n", 1); write(1, c, 11); write(1, "\n", 1); return (0); }
char buf1[] = "Ceci est un test."; char buf2[200]; void *p1, *p2; p1 = memccpy(buf2, buf1, 'i', 10); p2 = ft_memccpy(buf2, buf1, 'i', 10); UT_ASSERT_EQ(p1, p2); UT_ASSERT_EQ(ft_memccpy(buf2, buf1, 'k', 5), 0); UT_ASSERT_EQ(ft_memccpy(buf2, buf1, 0, 0), memccpy(buf2, buf1, 0, 0)); UT_ASSERT_EQ(ft_memccpy(buf2, buf1, 0, sizeof(buf1)), memccpy(buf2, buf1, 0, sizeof(buf1))); UT_ASSERT_EQ(ft_memccpy(buf2, buf1, 'C', 10), buf2 + 1);
char *ft_strcpy(char *dst, const char *src) { ft_memccpy(dst, src, 0, ft_strlen(src)); return (dst); }