책 내용 질문하기
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]로 선언한 것입니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.