ft_strmapi - chanhl22/libft GitHub Wiki

  1 /* ************************************************************************** */          
  2 /*                                                                            */
  3 /*                                                        :::      ::::::::   */
  4 /*   ft_strmapi.c                                       :+:      :+:    :+:   */
  5 /*                                                    +:+ +:+         +:+     */
  6 /*   By: chanhlee <[email protected].>       +#+  +:+       +#+        */
  7 /*                                                +#+#+#+#+#+   +#+           */
  8 /*   Created: 2021/01/26 11:53:28 by chanhlee          #+#    #+#             */
  9 /*   Updated: 2021/01/28 11:26:58 by chanhlee         ###   ########.fr       */
 10 /*                                                                            */
 11 /* ************************************************************************** */
 12 
 13 #include "libft.h"
 14 
 15 char *ft_strmapi(char const *s, char (*f)(unsigned int, char))
 16 {
 17     char *str; //동적할당 받을 변수
 18     int len; //길이
 19     int i; //인덱스 
 20 
 21     if (!s)
 22         return (NULL);
 23     len = ft_strlen(s); //길이 넣어줌
 24     if (!(str = (char*)malloc(sizeof(char)*(len + 1)))) //새 변수에 동적할당 , 실패하면 리턴NULL
 25         return (NULL);
 26     i = 0;
 27     while (s[i] != '\0') //문자를 끝까지 훑음
 28     {
 29         str[i] = f(i, s[i]); //함수를 적용시켜줌
 30         i++;
 31     }
 32     str[i] = '\0'; //마지막에 NULL
 33     return (str);
 34 }