ft_atoi

one·2021년 1월 10일
0

✅atoi

  • Ascii string To Integer
  • 문자열을 정수로 변환
  • 선행 whitespace는 무시

💾함수 원형

int atoi(const char *s);

💻Parameters

  • s : 문자열

💻Return value

  • 변환 가능한 정수, 없을 시 0

💾함수 구현

#include "libft.h"

int	ft_atoi(const char* str)
{
    unsigned int	i;
    int				neg;

    i = 0;
    neg = 0;
    while (*str == '\t' || *str == '\n' ||
        *str == '\v' || *str == '\f' || *str == '\r' ||
        *str == ' ')
        str++;
    if (*str == '-' || *str == '+')
    {
        if (*str == '-')
            neg++;
        str++;
    }
    while (*str >= '0' && *str <= '9')
    {
        i = i * 10 + (*str - 48);
        str++;
    }
    if (neg % 2 != 0)
        i = i * -1;
    return (i);
}

💾사용 예시

#include <stdio.h>
//#include <stdlib.h>    //atoi 함수가 선언된 헤더 파일

int main()
{
    char* s1 = "---123";   
    char* s2 = "a123";
    char* s3 = "  123aa";
    char* s4 = "123 123";
    
    int num1 = ft_atoi(s1);
    int num2 = ft_atoi(s2);
    int num3 = ft_atoi(s3);
    int num4 = ft_atoi(s4);

    printf("%d\n", num1);
    printf("%d\n", num2);
    printf("%d\n", num3);
    printf("%d\n", num4);

    return 0;
}

profile
늘 호기심을 갖고, 새로운 것에 도전할 것.

0개의 댓글