kimsy96   6년 전

아무 생각 없이 이문제를 풀었고 맞추긴 맞췄는데 갑자기 드는 의문이 생겼습니다. 제가 지식이 부족해서 여쭤봅니다.

char형 배열 str1,str2를 생성하고 거기에다 문자열을 집어넣고 atoi로 문자열을 실수로 바꿨습니다.

갑자기 드는 의문은 숫자가 작을 경우 str1,str2에 숫자가 다 차지 않을텐데 이걸 atoi가 어떻게 알고 정수로 바꿔주는건가요

채워지지 않은 부분은 쓰레기값이 들어있을텐데/


bupjae   6년 전

C언어에서는 char 배열로 문자열을 처리할 때, 문자열의 끝을 ascii code 0 (NUL) 글자로 채워넣습니다.

예를 들어서 "120" 이라는 문자열을 8칸 char 배열에 저장할 때는 {'1', '2', '0', '\0', ?, ?, ?, ?} 이런 식으로 저장됩니다.

atoi 같은 함수는 ascii code 0 을 만나면 처리를 끝내고 결과를 반환합니다.



주의: 이 설명은 C++ 에 도입된 string 자료형과는 관계없습니다.

kimsy96   6년 전

와 감사합니다

댓글을 작성하려면 로그인해야 합니다.