void test_striter(void) { char a[20]; ft_strcpy(a, "hello my name is"); ft_striter(a, to_upper); if (ft_strcmp("HELLO MY NAME IS", a) != 0) ft_putendl("ERROR: ft_striter failed."); ft_striter(NULL, to_upper); ft_putendl("OK: ft_striter passed."); ft_putendl("---------"); }
int main(void) { /* striter */ ft_putendl("--- striter ? --- "); char str[] = "abcde"; ft_striter(str, ft_change); /* striteri */ ft_putendl("--- striter ? --- "); char str2[] = "abcde"; ft_striteri(str2, ft_change2); /* strmap */ ft_putendl("--- strmap ? --- "); char str3[] = "abcde"; ft_putendl(ft_strmap(str3, ft_change3)); /* strmapi */ ft_putendl("--- strmapi ? --- "); char str4[] = "abcde"; ft_putendl(ft_strmapi(str4, ft_change4)); return (0); }
void ft_striter(char *s, void (*f)(char *)) { if (s && f && *s) { (*f)(s); ft_striter(s + 1, f); } }
void test_striter() { char tmp[] = "M**********r"; dprintf(1, "Striter "); ft_striter(tmp, &char_to_upper); if (strcmp(tmp, "M**********R") != 0) { dprintf(1, "\x1b[31mFail\x1b[0m\n Params:\n s : M**********r\n f : char_to_toupper(char *c) *c = toupper(*c);\n\n Valeur attendue : M**********R\n Valeur obtenue : %s\n", tmp); return; } dprintf(1, "\x1b[32mOK\x1b[0m\n"); }
char *ft_strmap(char const*s, char (*f)(char)) { char *newstr; if (s && *f) { newstr = ft_strdup(s); ft_striter((char*)newstr, (void(*)(char*))f); return (newstr); } return (0); }
void test_striter() { void (*f)(char*); char ptr[20] = "bonjour"; f = &test_striter_1; ft_striter(ptr, f); ft_putstr("TEST STRITER : "); if (!strcmp(ptr, "anmintq")) ft_putendl("ok :)"); else ft_putendl("not ok :("); }
int main(int ac, char **av) { int i; i = 1; if (ac == 1) { return 1; } else { while (i < ac) { ft_striter(av[i], my_putstr); i++; } } return 0; }