책 내용 질문하기
char a[11] 부분이 이해가 안가네여
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
200
조회수
74
작성일
2017-09-05
작성자
탈퇴*원
첨부파일
맨 처음 10자리의 2진수를 쓴다고 되어있는데
c언어 코드에서 보면
char a[11] 이면 a[0], a[1], a[2] . . . . . .a[10] 총 배열이 11개 아닙니까?
또 밑에 if (c<=9) 라는 거 보면 배열도 9까지 밖에 계산을 안하는데 오타인가요?
답변
2017-09-06 10:04:52
안녕하세요.
scanf("%s", a);
scanf로 %s, 즉 문자열을 입력받아 a 배열에 저장하라는 의미입니다.
문자열을 입력받아 배열에 저장하면 문자열의 맨 끝에는 입력된 값이 문자열이라는 의미로 널 문자('\0')가 자동 삽입됩니다.
그러므로 문자열이 저장될 배열을 선언할 때는 입력될 문자열 보다 1자리를 더 크게 지정해야 합니다.
그러므로 a[10]이 아니라 a[11]로 선언한 것입니다.
오늘도 즐거운 하루 되세요.
-
*2017-09-06 10:04:52
안녕하세요.
scanf("%s", a);
scanf로 %s, 즉 문자열을 입력받아 a 배열에 저장하라는 의미입니다.
문자열을 입력받아 배열에 저장하면 문자열의 맨 끝에는 입력된 값이 문자열이라는 의미로 널 문자('\0')가 자동 삽입됩니다.
그러므로 문자열이 저장될 배열을 선언할 때는 입력될 문자열 보다 1자리를 더 크게 지정해야 합니다.
그러므로 a[10]이 아니라 a[11]로 선언한 것입니다.
오늘도 즐거운 하루 되세요.