#include <unistd.h>
#include <stdio.h>

int	check_char(char *str)
{
	if (*str == 32 || (*str >= 9 && *str <= 13))
		return (1);
	else if (*str == '-' || *str == '+')
		return (2);
	else if (*str >= '0' && *str <= '9')
		return (3);
	else
		return (0);
}

void	check_sign(char *str, int *sign)
{
	if (*str == '-')
		*sign = *sign * (-1);
}

int	ft_atoi(char *str)
{
	int	i;
	int	sign;
	int	number;

	i = 0;
	while (check_char(&str[i]) == 1)
		i++;
	sign = 1;
	while (str[i] && check_char(&str[i]) == 2)
	{
		check_sign(&str[i], &sign);
		i++;
	}
	number = 0;
	while (check_char(&str[i]) == 3 || str[i] == '\0')
	{
		if (str[i] == '\0')
			return (number * sign);
		number = (number * 10) + (str[i] - 48);
		if (check_char(&str[i + 1]) != 3)
			return (number * sign);
		i++;
	}
	return (0);
}

int main (void)
{
 	char str[] = "---+--+1234ab567";
 	printf("%d\n", ft_atoi(str));
 	char str1[] = "-- -+--+1234ab567";
 	printf("%d\n", ft_atoi(str1));
 	char str2[] = "\t---+--+12a34ab567";
 	printf("%d\n", ft_atoi(str2));
 	char str3[] = "-+-+-+-+-+-+12+56434";
 	printf("%d\n", ft_atoi(str3));
 	return (0);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: