include
#include <stdlib.h> int atoi(const char *str);
인자
- str
int 형태로 바꿔줄 문자열이다.
문자열을 숫자로
바꿔주는 함수이다.
atoi가 문자열을 int형으로 바꿔주는 구조는 우선 공백(whitespace)
을 모두 지나치고 '-' 혹은 '+'
가 있는지 없는지 확인 한 후 숫자 '0' ~ '9'
가 아닌 값이 나올 때까지 숫자로 바꿔준다.
문자열 "123"을 넣어주면 int형태의 123을 리턴해 준다."
" \n\r\t\v\f123"
처럼 앞에 공백이 있다면 어떻게 될까??
atoi는 처음에 공백이 온다면 유효 문자가 나올때까지 지나치기 때문에 리턴 값은 똑같이 123이다.
"-123"처럼 '-'가 포함
되어있다면 음수라고 생각하고 -123을 리턴해 준다.
그럼 " +123"
처럼 +는어떤 형태이지???
그냥 숫자만 리턴해 준다.
어? 그럼 —++
처럼 부호가 여러개 온다면???
인식하지 못하고 널을 리턴해버린다.
그렇다면 " a 123"
처럼 앞에 숫자가 아닌 문자가 끼어있으면 어떻게 될까??
이런 식으로 숫자를 찾지 못했다고 인식하고 0을 리턴한다.
만약 " 12a3"
처럼 숫자 뒤에 다른 문자가 끼어있다면??
유효한 문자까지만, 즉 a가 나오기 전까지만 int형으로 바꿔주고 리턴해 준다.
이런 식으로 유효한 문자 까지만 변환을 해 주고 변환된 값을 리턴해 준다.
변환된 숫자를 리턴해 준다.