ft_itoa

jaehlee·2025년 4월 27일

Libft

목록 보기
14/26

1. ft_itoa란?


정수 n을 문자열로 바꾸어 주는 함수이다.

2. 함수 프로토타입

char	*ft_itoa(int n)

3. 함수구현

int get_len(int n): 정수 n이 몇 자리인지 구하는 함수이다.

#include "libft.h"

static int	get_len(int n)
{
	int			len;

	len = 1;
	if (n == 0)
		return (1);
	while (n >= 10)
	{
		n = n / 10;
		len++;
	}
	return (len);
}

char	*ft_itoa(int n)
{
	int			sign;
	int			len;
	char		*result;

	sign = 0;
	if (n == -2147483648)
		return (ft_strdup("-2147483648"));
	if (n < 0)
	{
		sign = 1;
		n = -n;
	}
	len = get_len(n);
	result = (char *)malloc(sizeof(char) * (len + sign + 1));
	if (!result)
		return (0);
	result[len + sign] = '\0';
	while (len--)
	{
		result[len + sign] = (n % 10) + '0';
		n /= 10;
	}
	if (sign)
		result[0] = '-';
	return (result);
}

itoa는 atoi와 달리 배열의 뒷 부분부터 채워야 정상적인 문자열 순서가 만들어진다.
%10연산을 하면 가장 작은수부터 계산하기 때문이다.

profile
공부하는 개발자

0개의 댓글