* ascii to integer.
* 문자를 입력받아 숫자로 전환하는 함수.
int ft_atoi(char const *str)
* 공백이 먼저 들어올 수 있기 때문에 공백을 제거해야 함.
* 공백 이후 -와 +를 제외한 문자가 오면 바로 지금까지의 문자를 숫자로 바꾼 것을 리턴해야 함.
- ex) 2145ao235 --> 2145
* '-'부호가 올 때에는 음수가 리턴된다는 점 주의.
#include "libft.h"
static int ft_isspace(char c)
{
if (c == '\n' || c == '\t' || c == '\f' || c == '\r' || c == '\v' ||
c == ' ')
{
return (1);
}
return (0);
}
static void ft_deletespace(char const *str, int *index)
{
while (ft_isspace(str[*index]) == 1)
(*index)++;
}
int ft_atoi(char const *str)
{
int res;
int index;
int minus;
int middle;
res = 0;
index = 0;
minus = 1;
middle = 1;
ft_deletespace(str, &index);
if (str[index] == '-')
{
minus = -1;
index++;
}
else if (str[index] == '+')
index++;
while (str[index] != '\0')
{
if (!(str[index] >= '0' && str[index] <= '9'))
break ;
middle = str[index++] - '0';
res = res * 10 + middle;
}
return (res * minus);
}
ft_isspace : 문자 c를 인자로 받아 c가 공백인지 확인하는 함수
ft_deletespace : str과 index를 인자로 받아 index가 공백이 아닌 문자를 가리키도록(공백일 때까지 index++) 하는 함수
ft_atoi : ft_deletespace 함수를 통해 공백을 제거하고, -문자가 오면 minus 변수에 -1저장. str[index]값이 0부터 9사이가 아닐 시 반복문을 탈출하고 res * minus 리턴.