원래 코드

#include <stdio.h>

#include <unistd.h>

int	ft_str_is_numeric(char *str)
{
	int	i;
	int	cnt;

	i = 0;
	while (str[i] != '\\0')
	{
		if (str[i] >= '0' && str[i] <= '9')
		{
			cnt = 1;
		}
		else
		{
			cnt = 0;
			break ;
		}
		i++;
	}
	return (cnt);
}

int main() {
    char a[] = "0123456789";
    char b[] = "0l2E456789";

    printf("%d", ft_str_is_numeric(a));
    printf("%c", '\\n');
    printf("%d", ft_str_is_numeric(b));
    
    return 0;
}

수정한 코드

이것도 문자열 str이 비어있을 때의 예외처리를 하지 않아 오답이어서 코드를 수정했다.

#include <unistd.h>

int	ft_strlen(char *str)
{
	int	count;

	count = 0;
	while (str[count] != '\\n')
	{
		count++;
	}
	return (count);
}

int	ft_str_is_numeric(char *str)
{
	int	i;
	int	cnt;

	i = 0;
	if (ft_strlen(str) == 0)
		cnt = 1;
	while (str[i] != '\\0')
	{
		if (str[i] >= '0' && str[i] <= '9')
		{
			cnt = 1;
		}
		else
		{
			cnt = 0;
			break ;
		}
		i++;
	}
	return (cnt);
}