/* Libft Copyright (C) 2026 yctct This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "libft.h" char *ft_strmapi(char const *s, char (*f)(unsigned int, char)) { int i; char *newstring; newstring = malloc(sizeof(char) * (ft_strlen(s) + 1)); if (!newstring) return (NULL); i = 0; while (s[i]) { newstring[i] = f(i, s[i]); i++; } newstring[i] = '\0'; return (newstring); } /* #include char addOne(unsigned int i, char c) { return (i + c); } int main(void) { char * s = ft_strmapi("1234", addOne); printf("%s\n", s); free(s); s = ft_strmapi("", addOne); printf("%s\n", s); free(s); return (0); } char tmp(unsigned int i, char c) { i = 0; return(ft_toupper(c)); } int main(void) { char s[] = "abc"; printf("%s\n", ft_strmapi(s, tmp)); } */