[42seoul] atoi는 어떤 함수일까??

개발하는 곰댕이·2021년 4월 10일
0

42Seoul

목록 보기
27/45

include

#include <stdlib.h>
int atoi(const char *str);

인자

  • str
    int 형태로 바꿔줄 문자열이다.

1. atoi란??

문자열을 숫자로 바꿔주는 함수이다.
atoi가 문자열을 int형으로 바꿔주는 구조는 우선 공백(whitespace)을 모두 지나치고 '-' 혹은 '+' 가 있는지 없는지 확인 한 후 숫자 '0' ~ '9'가 아닌 값이 나올 때까지 숫자로 바꿔준다.

2. 사용 예제


문자열 "123"을 넣어주면 int형태의 123을 리턴해 준다."


" \n\r\t\v\f123"처럼 앞에 공백이 있다면 어떻게 될까??

atoi는 처음에 공백이 온다면 유효 문자가 나올때까지 지나치기 때문에 리턴 값은 똑같이 123이다.


"-123"처럼 '-'가 포함되어있다면 음수라고 생각하고 -123을 리턴해 준다.


그럼 " +123"처럼 +는어떤 형태이지???

그냥 숫자만 리턴해 준다.


어? 그럼 —++처럼 부호가 여러개 온다면???

인식하지 못하고 널을 리턴해버린다.


그렇다면 " a 123"처럼 앞에 숫자가 아닌 문자가 끼어있으면 어떻게 될까??

이런 식으로 숫자를 찾지 못했다고 인식하고 0을 리턴한다.


만약 " 12a3"처럼 숫자 뒤에 다른 문자가 끼어있다면??

유효한 문자까지만, 즉 a가 나오기 전까지만 int형으로 바꿔주고 리턴해 준다.

이런 식으로 유효한 문자 까지만 변환을 해 주고 변환된 값을 리턴해 준다.

3. 리턴값

변환된 숫자를 리턴해 준다.

0개의 댓글