[C] atoi 사용법

C에서 atoi 함수를 쓰던 와중 의문이 생겼다.
atoi(2019.txt)를 했더니 2019가 반환된 것이다.
왜 그런지 알아보자.

atoi 함수란

atoi 함수는 기본적으로 char to int, 문자열을 정수타입으로 바꾸는 함수이다.
#include <stdlib.h>를 해야 사용할 수 있다.

#include <stdio.h>
#include <stdlib.h>

int main(){
int num = 0;
char myString[20] = "2019";

printf("string = %s\n",myString);
//2019 출력
num = atoi(myString);
printf("int = %d\n",num);
//2019 출력

char str1[]="testing";
char str2[]="2019";
char str3[]="2021testing";
char str4[]="testing2022";

printf("int = %d\n",atoi(str1));
//0
printf("int = %d\n",atoi(str2));
//2019
printf("int = %d\n",atoi(str3));
//2021
printf("int = %d\n",atoi(str4));
//0
}

atoi("문자") -> 문자가 맨처음 나와서 0 리턴
atoi("숫자") -> 숫자 반환
atoi("숫자 + 문자") -> 문자나오기 전까지 숫자 반환
atoi("문자 + 숫자") -> 문자가 바로 나와서 0리턴

즉 atoi 함수는 매개변수로 들어온 문자열을 앞에서 부터 읽어서 숫자가 아닌 문자가 올떄까지 읽고 숫자로 변환해주는 함수이다.




참고자료
https://blockdmask.tistory.com/331

좋은 웹페이지 즐겨찾기